Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
ntddvol.h
00001 /* 00002 * ntddvol.h 00003 * 00004 * Volume IOCTL interface. 00005 * 00006 * This file is part of the w32api package. 00007 * 00008 * Contributors: 00009 * Created by Casper S. Hornstrup <chorns@users.sourceforge.net> 00010 * 00011 * THIS SOFTWARE IS NOT COPYRIGHTED 00012 * 00013 * This source code is offered for use in the public domain. You may 00014 * use, modify or distribute it freely. 00015 * 00016 * This code is distributed in the hope that it will be useful but 00017 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY 00018 * DISCLAIMED. This includes but is not limited to warranties of 00019 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00020 * 00021 */ 00022 00023 #ifndef __NTDDVOL_H 00024 #define __NTDDVOL_H 00025 00026 #if __GNUC__ >=3 00027 #pragma GCC system_header 00028 #endif 00029 00030 #ifdef __cplusplus 00031 extern "C" { 00032 #endif 00033 00034 #include "ntddk.h" 00035 00036 #define IOCTL_VOLUME_BASE ((ULONG) 'V') 00037 00038 #define IOCTL_VOLUME_LOGICAL_TO_PHYSICAL \ 00039 CTL_CODE(IOCTL_VOLUME_BASE, 8, METHOD_BUFFERED, FILE_ANY_ACCESS) 00040 00041 #define IOCTL_VOLUME_PHYSICAL_TO_LOGICAL \ 00042 CTL_CODE(IOCTL_VOLUME_BASE, 9, METHOD_BUFFERED, FILE_ANY_ACCESS) 00043 00044 #define IOCTL_VOLUME_READ_PLEX \ 00045 CTL_CODE(IOCTL_VOLUME_BASE, 11, METHOD_OUT_DIRECT, FILE_READ_ACCESS) 00046 00047 #define IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS \ 00048 CTL_CODE(IOCTL_VOLUME_BASE, 0, METHOD_BUFFERED, FILE_ANY_ACCESS) 00049 00050 #define IOCTL_VOLUME_IS_CLUSTERED \ 00051 CTL_CODE(IOCTL_VOLUME_BASE, 12, METHOD_BUFFERED, FILE_ANY_ACCESS) 00052 00053 #define IOCTL_VOLUME_QUERY_VOLUME_NUMBER \ 00054 CTL_CODE(IOCTL_VOLUME_BASE, 7, METHOD_BUFFERED, FILE_ANY_ACCESS) 00055 00056 #define IOCTL_VOLUME_IS_PARTITION \ 00057 CTL_CODE(IOCTL_VOLUME_BASE, 10, METHOD_BUFFERED, FILE_ANY_ACCESS) 00058 00059 #define IOCTL_VOLUME_SET_GPT_ATTRIBUTES \ 00060 CTL_CODE(IOCTL_VOLUME_BASE, 13, METHOD_BUFFERED, FILE_ANY_ACCESS) 00061 00062 #define IOCTL_VOLUME_GET_GPT_ATTRIBUTES \ 00063 CTL_CODE(IOCTL_VOLUME_BASE, 14, METHOD_BUFFERED, FILE_ANY_ACCESS) 00064 00065 #define IOCTL_VOLUME_SUPPORTS_ONLINE_OFFLINE \ 00066 CTL_CODE(IOCTL_VOLUME_BASE, 1, METHOD_BUFFERED, FILE_ANY_ACCESS) 00067 00068 #define IOCTL_VOLUME_ONLINE \ 00069 CTL_CODE(IOCTL_VOLUME_BASE, 2, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) 00070 00071 #define IOCTL_VOLUME_OFFLINE \ 00072 CTL_CODE(IOCTL_VOLUME_BASE, 3, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) 00073 00074 #define IOCTL_VOLUME_IS_OFFLINE \ 00075 CTL_CODE(IOCTL_VOLUME_BASE, 4, METHOD_BUFFERED, FILE_ANY_ACCESS) 00076 00077 #define IOCTL_VOLUME_IS_IO_CAPABLE \ 00078 CTL_CODE(IOCTL_VOLUME_BASE, 5, METHOD_BUFFERED, FILE_ANY_ACCESS) 00079 00080 #define IOCTL_VOLUME_QUERY_FAILOVER_SET \ 00081 CTL_CODE(IOCTL_VOLUME_BASE, 6, METHOD_BUFFERED, FILE_ANY_ACCESS) 00082 00083 00084 typedef struct _VOLUME_LOGICAL_OFFSET { 00085 LONGLONG LogicalOffset; 00086 } VOLUME_LOGICAL_OFFSET, *PVOLUME_LOGICAL_OFFSET; 00087 00088 typedef struct _VOLUME_PHYSICAL_OFFSET { 00089 ULONG DiskNumber; 00090 LONGLONG Offset; 00091 } VOLUME_PHYSICAL_OFFSET, *PVOLUME_PHYSICAL_OFFSET; 00092 00093 typedef struct _VOLUME_PHYSICAL_OFFSETS { 00094 ULONG NumberOfPhysicalOffsets; 00095 VOLUME_PHYSICAL_OFFSET PhysicalOffset[1]; 00096 } VOLUME_PHYSICAL_OFFSETS, *PVOLUME_PHYSICAL_OFFSETS; 00097 00098 typedef struct _VOLUME_READ_PLEX_INPUT { 00099 LARGE_INTEGER ByteOffset; 00100 ULONG Length; 00101 ULONG PlexNumber; 00102 } VOLUME_READ_PLEX_INPUT, *PVOLUME_READ_PLEX_INPUT; 00103 00104 typedef struct _VOLUME_GET_GPT_ATTRIBUTES_INFORMATION { 00105 ULONGLONG GptAttributes; 00106 } VOLUME_GET_GPT_ATTRIBUTES_INFORMATION, *PVOLUME_GET_GPT_ATTRIBUTES_INFORMATION; 00107 00108 typedef struct _VOLUME_SET_GPT_ATTRIBUTES_INFORMATION { 00109 ULONGLONG GptAttributes; 00110 BOOLEAN RevertOnClose; 00111 BOOLEAN ApplyToAllConnectedVolumes; 00112 USHORT Reserved1; 00113 ULONG Reserved2; 00114 } VOLUME_SET_GPT_ATTRIBUTES_INFORMATION, *PVOLUME_SET_GPT_ATTRIBUTES_INFORMATION; 00115 00116 typedef struct _DISK_EXTENT { 00117 ULONG DiskNumber; 00118 LARGE_INTEGER StartingOffset; 00119 LARGE_INTEGER ExtentLength; 00120 } DISK_EXTENT, *PDISK_EXTENT; 00121 00122 typedef struct _VOLUME_DISK_EXTENTS { 00123 ULONG NumberOfDiskExtents; 00124 DISK_EXTENT Extents[1]; 00125 } VOLUME_DISK_EXTENTS, *PVOLUME_DISK_EXTENTS; 00126 00127 typedef struct _VOLUME_NUMBER { 00128 ULONG VolumeNumber; 00129 WCHAR VolumeManagerName[8]; 00130 } VOLUME_NUMBER, *PVOLUME_NUMBER; 00131 00132 typedef struct _VOLUME_FAILOVER_SET { 00133 ULONG NumberOfDisks; 00134 ULONG DiskNumbers[1]; 00135 } VOLUME_FAILOVER_SET, *PVOLUME_FAILOVER_SET; 00136 00137 #ifdef __cplusplus 00138 } 00139 #endif 00140 00141 #endif /* __NTDDVOL_H */
Generated on Tue Jul 12 2022 19:59:55 by
