31#if defined(_WINIOCTL_) || defined(IOCTL_VOLUME_BASE)
33#define _WINIOCTL_DEFINED_
36#ifndef _WINIOCTL_DEFINED_
37#define IOCTL_VOLUME_BASE ((ULONG) 'V')
41#if (NTDDI_VERSION >= NTDDI_WIN2K)
43#ifndef _WINIOCTL_DEFINED_
44#define IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS \
45 CTL_CODE(IOCTL_VOLUME_BASE, 0, METHOD_BUFFERED, FILE_ANY_ACCESS)
59#define IOCTL_VOLUME_SUPPORTS_ONLINE_OFFLINE \
60 CTL_CODE(IOCTL_VOLUME_BASE, 1, METHOD_BUFFERED, FILE_ANY_ACCESS)
62#ifndef _WINIOCTL_DEFINED_
63#define IOCTL_VOLUME_ONLINE \
64 CTL_CODE(IOCTL_VOLUME_BASE, 2, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
66#define IOCTL_VOLUME_OFFLINE \
67 CTL_CODE(IOCTL_VOLUME_BASE, 3, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
70#define IOCTL_VOLUME_IS_OFFLINE \
71 CTL_CODE(IOCTL_VOLUME_BASE, 4, METHOD_BUFFERED, FILE_ANY_ACCESS)
73#define IOCTL_VOLUME_IS_IO_CAPABLE \
74 CTL_CODE(IOCTL_VOLUME_BASE, 5, METHOD_BUFFERED, FILE_ANY_ACCESS)
76#define IOCTL_VOLUME_QUERY_FAILOVER_SET \
77 CTL_CODE(IOCTL_VOLUME_BASE, 6, METHOD_BUFFERED, FILE_ANY_ACCESS)
85#define IOCTL_VOLUME_QUERY_VOLUME_NUMBER \
86 CTL_CODE(IOCTL_VOLUME_BASE, 7, METHOD_BUFFERED, FILE_ANY_ACCESS)
88#define IOCTL_VOLUME_LOGICAL_TO_PHYSICAL \
89 CTL_CODE(IOCTL_VOLUME_BASE, 8, METHOD_BUFFERED, FILE_ANY_ACCESS)
91#define IOCTL_VOLUME_PHYSICAL_TO_LOGICAL \
92 CTL_CODE(IOCTL_VOLUME_BASE, 9, METHOD_BUFFERED, FILE_ANY_ACCESS)
116#if (NTDDI_VERSION >= NTDDI_WINXP)
118#define IOCTL_VOLUME_IS_PARTITION \
119 CTL_CODE(IOCTL_VOLUME_BASE, 10, METHOD_BUFFERED, FILE_ANY_ACCESS)
121#define IOCTL_VOLUME_READ_PLEX \
122 CTL_CODE(IOCTL_VOLUME_BASE, 11, METHOD_OUT_DIRECT, FILE_READ_ACCESS)
124#ifndef _WINIOCTL_DEFINED_
125#define IOCTL_VOLUME_IS_CLUSTERED \
126 CTL_CODE(IOCTL_VOLUME_BASE, 12, METHOD_BUFFERED, FILE_ANY_ACCESS)
129#define IOCTL_VOLUME_SET_GPT_ATTRIBUTES \
130 CTL_CODE(IOCTL_VOLUME_BASE, 13, METHOD_BUFFERED, FILE_ANY_ACCESS)
132#ifndef _WINIOCTL_DEFINED_
133#define IOCTL_VOLUME_GET_GPT_ATTRIBUTES \
134 CTL_CODE(IOCTL_VOLUME_BASE, 14, METHOD_BUFFERED, FILE_ANY_ACCESS)
151#ifndef _WINIOCTL_DEFINED_
160#if (NTDDI_VERSION >= NTDDI_VISTA)
165#if (NTDDI_VERSION >= NTDDI_WIN8)
167#define IOCTL_VOLUME_POST_ONLINE \
168 CTL_CODE(IOCTL_VOLUME_BASE, 25, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
173#ifdef _WINIOCTL_DEFINED_
174#undef _WINIOCTL_DEFINED_
struct _VOLUME_READ_PLEX_INPUT VOLUME_READ_PLEX_INPUT
struct _VOLUME_PHYSICAL_OFFSETS * PVOLUME_PHYSICAL_OFFSETS
struct _VOLUME_READ_PLEX_INPUT * PVOLUME_READ_PLEX_INPUT
struct _VOLUME_FAILOVER_SET VOLUME_FAILOVER_SET
struct _VOLUME_DISK_EXTENTS * PVOLUME_DISK_EXTENTS
struct _VOLUME_LOGICAL_OFFSET * PVOLUME_LOGICAL_OFFSET
struct _VOLUME_PHYSICAL_OFFSET * PVOLUME_PHYSICAL_OFFSET
struct _VOLUME_PHYSICAL_OFFSET VOLUME_PHYSICAL_OFFSET
struct _VOLUME_NUMBER VOLUME_NUMBER
struct _VOLUME_DISK_EXTENTS VOLUME_DISK_EXTENTS
struct _DISK_EXTENT DISK_EXTENT
struct _VOLUME_NUMBER * PVOLUME_NUMBER
struct _VOLUME_FAILOVER_SET * PVOLUME_FAILOVER_SET
struct _VOLUME_SET_GPT_ATTRIBUTES_INFORMATION VOLUME_SET_GPT_ATTRIBUTES_INFORMATION
struct _VOLUME_GET_GPT_ATTRIBUTES_INFORMATION * PVOLUME_GET_GPT_ATTRIBUTES_INFORMATION
struct _DISK_EXTENT * PDISK_EXTENT
struct _VOLUME_PHYSICAL_OFFSETS VOLUME_PHYSICAL_OFFSETS
struct _VOLUME_LOGICAL_OFFSET VOLUME_LOGICAL_OFFSET
struct _VOLUME_GET_GPT_ATTRIBUTES_INFORMATION VOLUME_GET_GPT_ATTRIBUTES_INFORMATION
struct _VOLUME_SET_GPT_ATTRIBUTES_INFORMATION * PVOLUME_SET_GPT_ATTRIBUTES_INFORMATION
LARGE_INTEGER StartingOffset
LARGE_INTEGER ExtentLength
ULONG NumberOfDiskExtents
WCHAR VolumeManagerName[8]
VOLUME_PHYSICAL_OFFSET PhysicalOffset[1]
ULONG NumberOfPhysicalOffsets