ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

ntddvol.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.