|
|
|
1 |
|
/*++ BUILD Version: 0016 // Increment this if a change has global effects |
2 |
|
|
3 |
|
Copyright (c) Microsoft Corporation. All rights reserved. |
4 |
|
|
5 |
|
Module Name: |
6 |
|
|
7 |
|
winioctl.h |
8 |
|
|
9 |
|
Abstract: |
10 |
|
|
11 |
|
This module defines the 32-Bit Windows Device I/O control codes. |
12 |
|
|
13 |
|
Revision History: |
14 |
|
|
15 |
|
--*/ |
16 |
|
|
17 |
|
|
18 |
|
// |
19 |
|
// Device interface class GUIDs. |
20 |
|
// |
21 |
|
// need these GUIDs outside conditional includes so that user can |
22 |
|
// #include <winioctl.h> in precompiled header |
23 |
|
// #include <initguid.h> in a single source file |
24 |
|
// #include <winioctl.h> in that source file a second time to instantiate the GUIDs |
25 |
|
// |
26 |
|
#ifdef DEFINE_GUID |
27 |
|
// |
28 |
|
// Make sure FAR is defined... |
29 |
|
// |
30 |
|
#ifndef FAR |
31 |
|
#ifdef _WIN32 |
32 |
|
#define FAR |
33 |
|
#else |
34 |
|
#define FAR _far |
35 |
|
#endif |
36 |
|
#endif |
37 |
|
|
38 |
|
DEFINE_GUID(GUID_DEVINTERFACE_DISK, 0x53f56307L, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b); |
39 |
|
DEFINE_GUID(GUID_DEVINTERFACE_CDROM, 0x53f56308L, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b); |
40 |
|
DEFINE_GUID(GUID_DEVINTERFACE_PARTITION, 0x53f5630aL, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b); |
41 |
|
DEFINE_GUID(GUID_DEVINTERFACE_TAPE, 0x53f5630bL, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b); |
42 |
|
DEFINE_GUID(GUID_DEVINTERFACE_WRITEONCEDISK, 0x53f5630cL, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b); |
43 |
|
DEFINE_GUID(GUID_DEVINTERFACE_VOLUME, 0x53f5630dL, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b); |
44 |
|
DEFINE_GUID(GUID_DEVINTERFACE_MEDIUMCHANGER, 0x53f56310L, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b); |
45 |
|
DEFINE_GUID(GUID_DEVINTERFACE_FLOPPY, 0x53f56311L, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b); |
46 |
|
DEFINE_GUID(GUID_DEVINTERFACE_CDCHANGER, 0x53f56312L, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b); |
47 |
|
DEFINE_GUID(GUID_DEVINTERFACE_STORAGEPORT, 0x2accfe60L, 0xc130, 0x11d2, 0xb0, 0x82, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b); |
48 |
|
|
49 |
|
#define WDI_STORAGE_PREDICT_FAILURE_DPS_GUID {0xe9f2d03aL, 0x747c, 0x41c2, {0xbb, 0x9a, 0x02, 0xc6, 0x2b, 0x6d, 0x5f, 0xcb}}; |
50 |
|
|
51 |
|
DEFINE_GUID(GUID_DEVINTERFACE_COMPORT, 0x86e0d1e0L, 0x8089, 0x11d0, 0x9c, 0xe4, 0x08, 0x00, 0x3e, 0x30, 0x1f, 0x73); |
52 |
|
DEFINE_GUID(GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR, 0x4D36E978L, 0xE325, 0x11CE, 0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18); |
53 |
|
|
54 |
|
// |
55 |
|
// Obsolete device interface class GUID names. |
56 |
|
// (use of above GUID_DEVINTERFACE_* names is recommended). |
57 |
|
// |
58 |
|
#define DiskClassGuid GUID_DEVINTERFACE_DISK |
59 |
|
#define CdRomClassGuid GUID_DEVINTERFACE_CDROM |
60 |
|
#define PartitionClassGuid GUID_DEVINTERFACE_PARTITION |
61 |
|
#define TapeClassGuid GUID_DEVINTERFACE_TAPE |
62 |
|
#define WriteOnceDiskClassGuid GUID_DEVINTERFACE_WRITEONCEDISK |
63 |
|
#define VolumeClassGuid GUID_DEVINTERFACE_VOLUME |
64 |
|
#define MediumChangerClassGuid GUID_DEVINTERFACE_MEDIUMCHANGER |
65 |
|
#define FloppyClassGuid GUID_DEVINTERFACE_FLOPPY |
66 |
|
#define CdChangerClassGuid GUID_DEVINTERFACE_CDCHANGER |
67 |
|
#define StoragePortClassGuid GUID_DEVINTERFACE_STORAGEPORT |
68 |
|
#define GUID_CLASS_COMPORT GUID_DEVINTERFACE_COMPORT |
69 |
|
#define GUID_SERENUM_BUS_ENUMERATOR GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR |
70 |
|
|
71 |
|
#endif // DEFINE_GUID |
72 |
|
|
73 |
|
#ifndef _WINIOCTL_ |
74 |
|
#define _WINIOCTL_ |
75 |
|
|
76 |
|
|
77 |
|
#ifndef _DEVIOCTL_ |
78 |
|
#define _DEVIOCTL_ |
79 |
|
|
80 |
|
// begin_ntddk begin_wdm begin_nthal begin_ntifs |
81 |
|
// |
82 |
|
// Define the various device type values. Note that values used by Microsoft |
83 |
|
// Corporation are in the range 0-32767, and 32768-65535 are reserved for use |
84 |
|
// by customers. |
5235 |
|
#endif // _FILESYSTEMFSCTL_ |
5236 |
|
|
5237 |
|
|
5238 |
|
#define IOCTL_VOLUME_BASE ((DWORD) 'V') |
5239 |
|
|
5240 |
|
#if (NTDDI_VERSION >= NTDDI_WIN2K) |
5241 |
|
|
5242 |
|
// |
5243 |
|
// These IOCTLs are handled by hard disk volumes. |
5244 |
|
// |
5245 |
|
|
5246 |
|
#define IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS CTL_CODE(IOCTL_VOLUME_BASE, 0, METHOD_BUFFERED, FILE_ANY_ACCESS) |
5247 |
|
|
5248 |
|
// |
5249 |
|
// Disk extent definition. |
5250 |
|
// |
5251 |
|
|
5252 |
|
typedef struct _DISK_EXTENT { |
5253 |
|
DWORD DiskNumber; |
5254 |
|
LARGE_INTEGER StartingOffset; |
5255 |
|
LARGE_INTEGER ExtentLength; |
5256 |
|
} DISK_EXTENT, *PDISK_EXTENT; |
5257 |
|
|
5258 |
|
// |
5259 |
|
// Output structure for IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS. |
5260 |
|
// |
5261 |
|
|
5262 |
|
typedef struct _VOLUME_DISK_EXTENTS { |
5263 |
|
DWORD NumberOfDiskExtents; |
5264 |
|
DISK_EXTENT Extents[1]; |
5265 |
|
} VOLUME_DISK_EXTENTS, *PVOLUME_DISK_EXTENTS; |
5266 |
|
|
5267 |
|
#endif // NTDDI_VERSION >= NTDDI_WIN2K |
5268 |
|
|
5269 |
|
#if (NTDDI_VERSION >= NTDDI_WINXP) |
5270 |
|
|
5271 |
|
// |
5272 |
|
// These IOCTLs are handled by hard disk volumes. |
5273 |
|
// |
5274 |
|
|
5275 |
|
#define IOCTL_VOLUME_IS_CLUSTERED CTL_CODE(IOCTL_VOLUME_BASE, 12, METHOD_BUFFERED, FILE_ANY_ACCESS) |
5276 |
|
|
5277 |
|
#endif // NTDDI_VERSION >= NTDDI_WINXP |
5278 |
|
|
5279 |
|
|
5280 |
|
#endif // _WINIOCTL_ |
5281 |
|
|
5282 |
|
|
5283 |
|
|
|
|
|