Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenntddvol.h
Go to the documentation of this file.
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_ 00024 #define _NTDDVOL_ 00025 00026 #ifdef __cplusplus 00027 extern "C" { 00028 #endif 00029 00030 #define IOCTL_VOLUME_BASE ((ULONG) 'V') 00031 00032 #define IOCTL_VOLUME_LOGICAL_TO_PHYSICAL \ 00033 CTL_CODE(IOCTL_VOLUME_BASE, 8, METHOD_BUFFERED, FILE_ANY_ACCESS) 00034 00035 #define IOCTL_VOLUME_PHYSICAL_TO_LOGICAL \ 00036 CTL_CODE(IOCTL_VOLUME_BASE, 9, METHOD_BUFFERED, FILE_ANY_ACCESS) 00037 00038 #define IOCTL_VOLUME_READ_PLEX \ 00039 CTL_CODE(IOCTL_VOLUME_BASE, 11, METHOD_OUT_DIRECT, FILE_READ_ACCESS) 00040 00041 #define IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS \ 00042 CTL_CODE(IOCTL_VOLUME_BASE, 0, METHOD_BUFFERED, FILE_ANY_ACCESS) 00043 00044 #define IOCTL_VOLUME_IS_CLUSTERED \ 00045 CTL_CODE(IOCTL_VOLUME_BASE, 12, METHOD_BUFFERED, FILE_ANY_ACCESS) 00046 00047 #define IOCTL_VOLUME_QUERY_VOLUME_NUMBER \ 00048 CTL_CODE(IOCTL_VOLUME_BASE, 7, METHOD_BUFFERED, FILE_ANY_ACCESS) 00049 00050 #define IOCTL_VOLUME_IS_PARTITION \ 00051 CTL_CODE(IOCTL_VOLUME_BASE, 10, METHOD_BUFFERED, FILE_ANY_ACCESS) 00052 00053 #define IOCTL_VOLUME_SET_GPT_ATTRIBUTES \ 00054 CTL_CODE(IOCTL_VOLUME_BASE, 13, METHOD_BUFFERED, FILE_ANY_ACCESS) 00055 00056 #define IOCTL_VOLUME_GET_GPT_ATTRIBUTES \ 00057 CTL_CODE(IOCTL_VOLUME_BASE, 14, METHOD_BUFFERED, FILE_ANY_ACCESS) 00058 00059 #define IOCTL_VOLUME_SUPPORTS_ONLINE_OFFLINE \ 00060 CTL_CODE(IOCTL_VOLUME_BASE, 1, METHOD_BUFFERED, FILE_ANY_ACCESS) 00061 00062 #define IOCTL_VOLUME_ONLINE \ 00063 CTL_CODE(IOCTL_VOLUME_BASE, 2, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) 00064 00065 #define IOCTL_VOLUME_OFFLINE \ 00066 CTL_CODE(IOCTL_VOLUME_BASE, 3, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) 00067 00068 #define IOCTL_VOLUME_IS_OFFLINE \ 00069 CTL_CODE(IOCTL_VOLUME_BASE, 4, METHOD_BUFFERED, FILE_ANY_ACCESS) 00070 00071 #define IOCTL_VOLUME_IS_IO_CAPABLE \ 00072 CTL_CODE(IOCTL_VOLUME_BASE, 5, METHOD_BUFFERED, FILE_ANY_ACCESS) 00073 00074 #define IOCTL_VOLUME_QUERY_FAILOVER_SET \ 00075 CTL_CODE(IOCTL_VOLUME_BASE, 6, METHOD_BUFFERED, FILE_ANY_ACCESS) 00076 00077 00078 typedef struct _VOLUME_LOGICAL_OFFSET { 00079 LONGLONG LogicalOffset; 00080 } VOLUME_LOGICAL_OFFSET, *PVOLUME_LOGICAL_OFFSET; 00081 00082 typedef struct _VOLUME_PHYSICAL_OFFSET { 00083 ULONG DiskNumber; 00084 LONGLONG Offset; 00085 } VOLUME_PHYSICAL_OFFSET, *PVOLUME_PHYSICAL_OFFSET; 00086 00087 typedef struct _VOLUME_PHYSICAL_OFFSETS { 00088 ULONG NumberOfPhysicalOffsets; 00089 VOLUME_PHYSICAL_OFFSET PhysicalOffset[1]; 00090 } VOLUME_PHYSICAL_OFFSETS, *PVOLUME_PHYSICAL_OFFSETS; 00091 00092 typedef struct _VOLUME_READ_PLEX_INPUT { 00093 LARGE_INTEGER ByteOffset; 00094 ULONG Length; 00095 ULONG PlexNumber; 00096 } VOLUME_READ_PLEX_INPUT, *PVOLUME_READ_PLEX_INPUT; 00097 00098 typedef struct _VOLUME_GET_GPT_ATTRIBUTES_INFORMATION { 00099 ULONGLONG GptAttributes; 00100 } VOLUME_GET_GPT_ATTRIBUTES_INFORMATION, *PVOLUME_GET_GPT_ATTRIBUTES_INFORMATION; 00101 00102 typedef struct _VOLUME_SET_GPT_ATTRIBUTES_INFORMATION { 00103 ULONGLONG GptAttributes; 00104 BOOLEAN RevertOnClose; 00105 BOOLEAN ApplyToAllConnectedVolumes; 00106 USHORT Reserved1; 00107 ULONG Reserved2; 00108 } VOLUME_SET_GPT_ATTRIBUTES_INFORMATION, *PVOLUME_SET_GPT_ATTRIBUTES_INFORMATION; 00109 00110 typedef struct _DISK_EXTENT { 00111 ULONG DiskNumber; 00112 LARGE_INTEGER StartingOffset; 00113 LARGE_INTEGER ExtentLength; 00114 } DISK_EXTENT, *PDISK_EXTENT; 00115 00116 typedef struct _VOLUME_DISK_EXTENTS { 00117 ULONG NumberOfDiskExtents; 00118 DISK_EXTENT Extents[1]; 00119 } VOLUME_DISK_EXTENTS, *PVOLUME_DISK_EXTENTS; 00120 00121 typedef struct _VOLUME_NUMBER { 00122 ULONG VolumeNumber; 00123 WCHAR VolumeManagerName[8]; 00124 } VOLUME_NUMBER, *PVOLUME_NUMBER; 00125 00126 typedef struct _VOLUME_FAILOVER_SET { 00127 ULONG NumberOfDisks; 00128 ULONG DiskNumbers[1]; 00129 } VOLUME_FAILOVER_SET, *PVOLUME_FAILOVER_SET; 00130 00131 #ifdef __cplusplus 00132 } 00133 #endif 00134 00135 #endif /* _NTDDVOL_ */ Generated on Sat May 26 2012 04:30:52 for ReactOS by
1.7.6.1
|