Artifact 21d3d57439478e49b67c0b7350bbeff2da11f21e:
- File
src/win32/winioctl.d
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
The problem was __gshared. Replacing it with TLS fixed the issue. Remaining problem is that "hack.d"'s CloseHandle hack is not working anymore.
(user: kinaba) [annotate]
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
0000: 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a /***************
0010: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0020: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0030: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0040: 2a 2a 2a 2a 2a 2a 2a 2a 5c 0d 0a 2a 20 20 20 20 ********\..*
0050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0060: 20 20 20 20 20 20 20 20 20 20 20 77 69 6e 69 6f winio
0070: 63 74 6c 2e 64 20 20 20 20 20 20 20 20 20 20 20 ctl.d
0080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0090: 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 20 20 *..*
00a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d *.
00e0: 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .*
00f0: 20 20 20 20 20 20 20 20 20 57 69 6e 64 6f 77 73 Windows
0100: 20 41 50 49 20 68 65 61 64 65 72 20 6d 6f 64 75 API header modu
0110: 6c 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 le
0120: 20 20 20 20 20 20 20 20 20 2a 0d 0a 2a 20 20 20 *..*
0130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0170: 20 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 20 *..*
0180: 20 20 20 20 20 20 20 20 20 54 72 61 6e 73 6c 61 Transla
0190: 74 65 64 20 66 72 6f 6d 20 4d 69 6e 47 57 20 57 ted from MinGW W
01a0: 69 6e 64 6f 77 73 20 68 65 61 64 65 72 73 20 20 indows headers
01b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a *
01c0: 0d 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..*
01d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 79 by
01e0: 20 53 74 65 77 61 72 74 20 47 6f 72 64 6f 6e 20 Stewart Gordon
01f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0200: 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 2a 20 20 *..*
0210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0220: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0230: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0240: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0250: 20 20 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 *..*
0260: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0270: 50 6c 61 63 65 64 20 69 6e 74 6f 20 70 75 62 6c Placed into publ
0280: 69 63 20 64 6f 6d 61 69 6e 20 20 20 20 20 20 20 ic domain
0290: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02a0: 2a 0d 0a 5c 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a *..\************
02b0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
02c0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
02d0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
02e0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0d 0a 6d 6f ***********/..mo
02f0: 64 75 6c 65 20 77 69 6e 33 32 2e 77 69 6e 69 6f dule win32.winio
0300: 63 74 6c 3b 0d 0a 0d 0a 2f 2f 20 46 49 58 4d 45 ctl;....// FIXME
0310: 3a 20 63 68 65 63 6b 20 74 79 70 65 73 20 6f 66 : check types of
0320: 20 73 6f 6d 65 20 63 6f 6e 73 74 61 6e 74 73 0d some constants.
0330: 0a 0d 0a 70 72 69 76 61 74 65 20 69 6d 70 6f 72 ...private impor
0340: 74 20 77 69 6e 33 32 2e 62 61 73 65 74 79 70 73 t win32.basetyps
0350: 2c 20 77 69 6e 33 32 2e 77 69 6e 64 65 66 3b 0d , win32.windef;.
0360: 0a 0d 0a 63 6f 6e 73 74 20 73 69 7a 65 5f 74 0d ...const size_t.
0370: 0a 09 48 49 53 54 5f 4e 4f 5f 4f 46 5f 42 55 43 ..HIST_NO_OF_BUC
0380: 4b 45 54 53 20 3d 20 32 34 2c 0d 0a 09 48 49 53 KETS = 24,...HIS
0390: 54 4f 47 52 41 4d 5f 42 55 43 4b 45 54 5f 53 49 TOGRAM_BUCKET_SI
03a0: 5a 45 20 3d 20 48 49 53 54 4f 47 52 41 4d 5f 42 ZE = HISTOGRAM_B
03b0: 55 43 4b 45 54 2e 73 69 7a 65 6f 66 2c 0d 0a 09 UCKET.sizeof,...
03c0: 44 49 53 4b 5f 48 49 53 54 4f 47 52 41 4d 5f 53 DISK_HISTOGRAM_S
03d0: 49 5a 45 20 3d 20 44 49 53 4b 5f 48 49 53 54 4f IZE = DISK_HISTO
03e0: 47 52 41 4d 2e 73 69 7a 65 6f 66 3b 0d 0a 0d 0a GRAM.sizeof;....
03f0: 61 6c 69 61 73 20 44 57 4f 52 44 20 44 45 56 49 alias DWORD DEVI
0400: 43 45 5f 54 59 50 45 3b 0d 0a 0d 0a 65 6e 75 6d CE_TYPE;....enum
0410: 20 3a 20 44 45 56 49 43 45 5f 54 59 50 45 20 7b : DEVICE_TYPE {
0420: 0d 0a 09 46 49 4c 45 5f 44 45 56 49 43 45 5f 42 ...FILE_DEVICE_B
0430: 45 45 50 20 20 20 20 20 20 20 20 20 20 20 20 20 EEP
0440: 20 20 3d 20 31 2c 0d 0a 09 46 49 4c 45 5f 44 45 = 1,...FILE_DE
0450: 56 49 43 45 5f 43 44 5f 52 4f 4d 2c 0d 0a 09 46 VICE_CD_ROM,...F
0460: 49 4c 45 5f 44 45 56 49 43 45 5f 43 44 5f 52 4f ILE_DEVICE_CD_RO
0470: 4d 5f 46 49 4c 45 5f 53 59 53 54 45 4d 2c 0d 0a M_FILE_SYSTEM,..
0480: 09 46 49 4c 45 5f 44 45 56 49 43 45 5f 43 4f 4e .FILE_DEVICE_CON
0490: 54 52 4f 4c 4c 45 52 2c 0d 0a 09 46 49 4c 45 5f TROLLER,...FILE_
04a0: 44 45 56 49 43 45 5f 44 41 54 41 4c 49 4e 4b 2c DEVICE_DATALINK,
04b0: 0d 0a 09 46 49 4c 45 5f 44 45 56 49 43 45 5f 44 ...FILE_DEVICE_D
04c0: 46 53 2c 0d 0a 09 46 49 4c 45 5f 44 45 56 49 43 FS,...FILE_DEVIC
04d0: 45 5f 44 49 53 4b 2c 0d 0a 09 46 49 4c 45 5f 44 E_DISK,...FILE_D
04e0: 45 56 49 43 45 5f 44 49 53 4b 5f 46 49 4c 45 5f EVICE_DISK_FILE_
04f0: 53 59 53 54 45 4d 2c 0d 0a 09 46 49 4c 45 5f 44 SYSTEM,...FILE_D
0500: 45 56 49 43 45 5f 46 49 4c 45 5f 53 59 53 54 45 EVICE_FILE_SYSTE
0510: 4d 2c 0d 0a 09 46 49 4c 45 5f 44 45 56 49 43 45 M,...FILE_DEVICE
0520: 5f 49 4e 50 4f 52 54 5f 50 4f 52 54 2c 0d 0a 09 _INPORT_PORT,...
0530: 46 49 4c 45 5f 44 45 56 49 43 45 5f 4b 45 59 42 FILE_DEVICE_KEYB
0540: 4f 41 52 44 2c 0d 0a 09 46 49 4c 45 5f 44 45 56 OARD,...FILE_DEV
0550: 49 43 45 5f 4d 41 49 4c 53 4c 4f 54 2c 0d 0a 09 ICE_MAILSLOT,...
0560: 46 49 4c 45 5f 44 45 56 49 43 45 5f 4d 49 44 49 FILE_DEVICE_MIDI
0570: 5f 49 4e 2c 0d 0a 09 46 49 4c 45 5f 44 45 56 49 _IN,...FILE_DEVI
0580: 43 45 5f 4d 49 44 49 5f 4f 55 54 2c 0d 0a 09 46 CE_MIDI_OUT,...F
0590: 49 4c 45 5f 44 45 56 49 43 45 5f 4d 4f 55 53 45 ILE_DEVICE_MOUSE
05a0: 2c 0d 0a 09 46 49 4c 45 5f 44 45 56 49 43 45 5f ,...FILE_DEVICE_
05b0: 4d 55 4c 54 49 5f 55 4e 43 5f 50 52 4f 56 49 44 MULTI_UNC_PROVID
05c0: 45 52 2c 0d 0a 09 46 49 4c 45 5f 44 45 56 49 43 ER,...FILE_DEVIC
05d0: 45 5f 4e 41 4d 45 44 5f 50 49 50 45 2c 0d 0a 09 E_NAMED_PIPE,...
05e0: 46 49 4c 45 5f 44 45 56 49 43 45 5f 4e 45 54 57 FILE_DEVICE_NETW
05f0: 4f 52 4b 2c 0d 0a 09 46 49 4c 45 5f 44 45 56 49 ORK,...FILE_DEVI
0600: 43 45 5f 4e 45 54 57 4f 52 4b 5f 42 52 4f 57 53 CE_NETWORK_BROWS
0610: 45 52 2c 0d 0a 09 46 49 4c 45 5f 44 45 56 49 43 ER,...FILE_DEVIC
0620: 45 5f 4e 45 54 57 4f 52 4b 5f 46 49 4c 45 5f 53 E_NETWORK_FILE_S
0630: 59 53 54 45 4d 2c 0d 0a 09 46 49 4c 45 5f 44 45 YSTEM,...FILE_DE
0640: 56 49 43 45 5f 4e 55 4c 4c 2c 0d 0a 09 46 49 4c VICE_NULL,...FIL
0650: 45 5f 44 45 56 49 43 45 5f 50 41 52 41 4c 4c 45 E_DEVICE_PARALLE
0660: 4c 5f 50 4f 52 54 2c 0d 0a 09 46 49 4c 45 5f 44 L_PORT,...FILE_D
0670: 45 56 49 43 45 5f 50 48 59 53 49 43 41 4c 5f 4e EVICE_PHYSICAL_N
0680: 45 54 43 41 52 44 2c 0d 0a 09 46 49 4c 45 5f 44 ETCARD,...FILE_D
0690: 45 56 49 43 45 5f 50 52 49 4e 54 45 52 2c 0d 0a EVICE_PRINTER,..
06a0: 09 46 49 4c 45 5f 44 45 56 49 43 45 5f 53 43 41 .FILE_DEVICE_SCA
06b0: 4e 4e 45 52 2c 0d 0a 09 46 49 4c 45 5f 44 45 56 NNER,...FILE_DEV
06c0: 49 43 45 5f 53 45 52 49 41 4c 5f 4d 4f 55 53 45 ICE_SERIAL_MOUSE
06d0: 5f 50 4f 52 54 2c 0d 0a 09 46 49 4c 45 5f 44 45 _PORT,...FILE_DE
06e0: 56 49 43 45 5f 53 45 52 49 41 4c 5f 50 4f 52 54 VICE_SERIAL_PORT
06f0: 2c 0d 0a 09 46 49 4c 45 5f 44 45 56 49 43 45 5f ,...FILE_DEVICE_
0700: 53 43 52 45 45 4e 2c 0d 0a 09 46 49 4c 45 5f 44 SCREEN,...FILE_D
0710: 45 56 49 43 45 5f 53 4f 55 4e 44 2c 0d 0a 09 46 EVICE_SOUND,...F
0720: 49 4c 45 5f 44 45 56 49 43 45 5f 53 54 52 45 41 ILE_DEVICE_STREA
0730: 4d 53 2c 0d 0a 09 46 49 4c 45 5f 44 45 56 49 43 MS,...FILE_DEVIC
0740: 45 5f 54 41 50 45 2c 0d 0a 09 46 49 4c 45 5f 44 E_TAPE,...FILE_D
0750: 45 56 49 43 45 5f 54 41 50 45 5f 46 49 4c 45 5f EVICE_TAPE_FILE_
0760: 53 59 53 54 45 4d 2c 0d 0a 09 46 49 4c 45 5f 44 SYSTEM,...FILE_D
0770: 45 56 49 43 45 5f 54 52 41 4e 53 50 4f 52 54 2c EVICE_TRANSPORT,
0780: 0d 0a 09 46 49 4c 45 5f 44 45 56 49 43 45 5f 55 ...FILE_DEVICE_U
0790: 4e 4b 4e 4f 57 4e 2c 0d 0a 09 46 49 4c 45 5f 44 NKNOWN,...FILE_D
07a0: 45 56 49 43 45 5f 56 49 44 45 4f 2c 0d 0a 09 46 EVICE_VIDEO,...F
07b0: 49 4c 45 5f 44 45 56 49 43 45 5f 56 49 52 54 55 ILE_DEVICE_VIRTU
07c0: 41 4c 5f 44 49 53 4b 2c 0d 0a 09 46 49 4c 45 5f AL_DISK,...FILE_
07d0: 44 45 56 49 43 45 5f 57 41 56 45 5f 49 4e 2c 0d DEVICE_WAVE_IN,.
07e0: 0a 09 46 49 4c 45 5f 44 45 56 49 43 45 5f 57 41 ..FILE_DEVICE_WA
07f0: 56 45 5f 4f 55 54 2c 0d 0a 09 46 49 4c 45 5f 44 VE_OUT,...FILE_D
0800: 45 56 49 43 45 5f 38 30 34 32 5f 50 4f 52 54 2c EVICE_8042_PORT,
0810: 0d 0a 09 46 49 4c 45 5f 44 45 56 49 43 45 5f 4e ...FILE_DEVICE_N
0820: 45 54 57 4f 52 4b 5f 52 45 44 49 52 45 43 54 4f ETWORK_REDIRECTO
0830: 52 2c 0d 0a 09 46 49 4c 45 5f 44 45 56 49 43 45 R,...FILE_DEVICE
0840: 5f 42 41 54 54 45 52 59 2c 0d 0a 09 46 49 4c 45 _BATTERY,...FILE
0850: 5f 44 45 56 49 43 45 5f 42 55 53 5f 45 58 54 45 _DEVICE_BUS_EXTE
0860: 4e 44 45 52 2c 0d 0a 09 46 49 4c 45 5f 44 45 56 NDER,...FILE_DEV
0870: 49 43 45 5f 4d 4f 44 45 4d 2c 0d 0a 09 46 49 4c ICE_MODEM,...FIL
0880: 45 5f 44 45 56 49 43 45 5f 56 44 4d 2c 0d 0a 09 E_DEVICE_VDM,...
0890: 46 49 4c 45 5f 44 45 56 49 43 45 5f 4d 41 53 53 FILE_DEVICE_MASS
08a0: 5f 53 54 4f 52 41 47 45 2c 0d 0a 09 46 49 4c 45 _STORAGE,...FILE
08b0: 5f 44 45 56 49 43 45 5f 53 4d 42 2c 0d 0a 09 46 _DEVICE_SMB,...F
08c0: 49 4c 45 5f 44 45 56 49 43 45 5f 4b 53 2c 0d 0a ILE_DEVICE_KS,..
08d0: 09 46 49 4c 45 5f 44 45 56 49 43 45 5f 43 48 41 .FILE_DEVICE_CHA
08e0: 4e 47 45 52 2c 0d 0a 09 46 49 4c 45 5f 44 45 56 NGER,...FILE_DEV
08f0: 49 43 45 5f 53 4d 41 52 54 43 41 52 44 2c 0d 0a ICE_SMARTCARD,..
0900: 09 46 49 4c 45 5f 44 45 56 49 43 45 5f 41 43 50 .FILE_DEVICE_ACP
0910: 49 2c 0d 0a 09 46 49 4c 45 5f 44 45 56 49 43 45 I,...FILE_DEVICE
0920: 5f 44 56 44 2c 0d 0a 09 46 49 4c 45 5f 44 45 56 _DVD,...FILE_DEV
0930: 49 43 45 5f 46 55 4c 4c 53 43 52 45 45 4e 5f 56 ICE_FULLSCREEN_V
0940: 49 44 45 4f 2c 0d 0a 09 46 49 4c 45 5f 44 45 56 IDEO,...FILE_DEV
0950: 49 43 45 5f 44 46 53 5f 46 49 4c 45 5f 53 59 53 ICE_DFS_FILE_SYS
0960: 54 45 4d 2c 0d 0a 09 46 49 4c 45 5f 44 45 56 49 TEM,...FILE_DEVI
0970: 43 45 5f 44 46 53 5f 56 4f 4c 55 4d 45 2c 0d 0a CE_DFS_VOLUME,..
0980: 09 46 49 4c 45 5f 44 45 56 49 43 45 5f 53 45 52 .FILE_DEVICE_SER
0990: 45 4e 55 4d 2c 0d 0a 09 46 49 4c 45 5f 44 45 56 ENUM,...FILE_DEV
09a0: 49 43 45 5f 54 45 52 4d 53 52 56 2c 0d 0a 09 46 ICE_TERMSRV,...F
09b0: 49 4c 45 5f 44 45 56 49 43 45 5f 4b 53 45 43 20 ILE_DEVICE_KSEC
09c0: 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 3d 20 // =
09d0: 35 37 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d 57..}....enum {.
09e0: 0a 09 4d 45 54 48 4f 44 5f 42 55 46 46 45 52 45 ..METHOD_BUFFERE
09f0: 44 2c 0d 0a 09 4d 45 54 48 4f 44 5f 49 4e 5f 44 D,...METHOD_IN_D
0a00: 49 52 45 43 54 2c 0d 0a 09 4d 45 54 48 4f 44 5f IRECT,...METHOD_
0a10: 4f 55 54 5f 44 49 52 45 43 54 2c 0d 0a 09 4d 45 OUT_DIRECT,...ME
0a20: 54 48 4f 44 5f 4e 45 49 54 48 45 52 0d 0a 7d 0d THOD_NEITHER..}.
0a30: 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 46 49 4c 45 ...enum {...FILE
0a40: 5f 41 4e 59 5f 41 43 43 45 53 53 2c 0d 0a 09 46 _ANY_ACCESS,...F
0a50: 49 4c 45 5f 53 50 45 43 49 41 4c 5f 41 43 43 45 ILE_SPECIAL_ACCE
0a60: 53 53 20 3d 20 30 2c 0d 0a 09 46 49 4c 45 5f 52 SS = 0,...FILE_R
0a70: 45 41 44 5f 41 43 43 45 53 53 2c 0d 0a 09 46 49 EAD_ACCESS,...FI
0a80: 4c 45 5f 57 52 49 54 45 5f 41 43 43 45 53 53 0d LE_WRITE_ACCESS.
0a90: 0a 7d 0d 0a 0d 0a 2f 2a 09 42 69 74 20 70 61 74 .}..../*.Bit pat
0aa0: 74 65 72 6e 3a 0d 0a 20 2a 09 74 74 74 74 74 74 tern:.. *.tttttt
0ab0: 74 74 20 74 74 74 74 74 74 74 74 20 61 61 66 66 tt tttttttt aaff
0ac0: 66 66 66 66 20 66 66 66 66 66 66 6d 6d 0d 0a 20 ffff ffffffmm..
0ad0: 2a 2f 0d 0a 2f 2b 0d 0a 23 64 65 66 69 6e 65 20 */../+..#define
0ae0: 43 54 4c 5f 43 4f 44 45 28 74 2c 20 66 2c 20 6d CTL_CODE(t, f, m
0af0: 2c 20 61 29 20 28 28 28 74 29 3c 3c 31 36 29 7c , a) (((t)<<16)|
0b00: 28 28 61 29 3c 3c 31 34 29 7c 28 28 66 29 3c 3c ((a)<<14)|((f)<<
0b10: 32 29 7c 28 6d 29 29 0d 0a 2b 2f 0d 0a 0d 0a 74 2)|(m))..+/....t
0b20: 65 6d 70 6c 61 74 65 20 43 54 4c 5f 43 4f 44 45 emplate CTL_CODE
0b30: 5f 54 28 44 45 56 49 43 45 5f 54 59 50 45 20 74 _T(DEVICE_TYPE t
0b40: 2c 20 75 69 6e 74 20 66 2c 20 75 69 6e 74 20 6d , uint f, uint m
0b50: 2c 20 75 69 6e 74 20 61 29 20 7b 0d 0a 09 63 6f , uint a) {...co
0b60: 6e 73 74 20 44 57 4f 52 44 20 43 54 4c 5f 43 4f nst DWORD CTL_CO
0b70: 44 45 5f 54 20 3d 20 28 74 20 3c 3c 20 31 36 29 DE_T = (t << 16)
0b80: 20 7c 20 28 61 20 3c 3c 20 31 34 29 20 7c 20 28 | (a << 14) | (
0b90: 66 20 3c 3c 20 32 29 20 7c 20 6d 3b 0d 0a 7d 0d f << 2) | m;..}.
0ba0: 0a 0d 0a 44 45 56 49 43 45 5f 54 59 50 45 20 44 ...DEVICE_TYPE D
0bb0: 45 56 49 43 45 5f 54 59 50 45 5f 46 52 4f 4d 5f EVICE_TYPE_FROM_
0bc0: 43 54 4c 5f 43 4f 44 45 28 44 57 4f 52 44 20 63 CTL_CODE(DWORD c
0bd0: 29 20 7b 0d 0a 09 72 65 74 75 72 6e 20 28 63 20 ) {...return (c
0be0: 26 20 30 78 46 46 46 46 30 30 30 30 29 20 3e 3e & 0xFFFF0000) >>
0bf0: 20 31 36 3b 0d 0a 7d 0d 0a 0d 0a 63 6f 6e 73 74 16;..}....const
0c00: 20 44 45 56 49 43 45 5f 54 59 50 45 0d 0a 09 49 DEVICE_TYPE...I
0c10: 4f 43 54 4c 5f 53 54 4f 52 41 47 45 5f 42 41 53 OCTL_STORAGE_BAS
0c20: 45 20 3d 20 46 49 4c 45 5f 44 45 56 49 43 45 5f E = FILE_DEVICE_
0c30: 4d 41 53 53 5f 53 54 4f 52 41 47 45 2c 0d 0a 09 MASS_STORAGE,...
0c40: 49 4f 43 54 4c 5f 44 49 53 4b 5f 42 41 53 45 20 IOCTL_DISK_BASE
0c50: 20 20 20 3d 20 46 49 4c 45 5f 44 45 56 49 43 45 = FILE_DEVICE
0c60: 5f 44 49 53 4b 2c 0d 0a 09 49 4f 43 54 4c 5f 56 _DISK,...IOCTL_V
0c70: 4f 4c 55 4d 45 5f 42 41 53 45 20 20 3d 20 27 56 OLUME_BASE = 'V
0c80: 27 3b 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 44 57 4f ';....enum : DWO
0c90: 52 44 20 7b 0d 0a 09 49 4f 43 54 4c 5f 53 54 4f RD {...IOCTL_STO
0ca0: 52 41 47 45 5f 43 48 45 43 4b 5f 56 45 52 49 46 RAGE_CHECK_VERIF
0cb0: 59 20 20 20 20 20 20 20 20 20 20 20 3d 20 43 54 Y = CT
0cc0: 4c 5f 43 4f 44 45 5f 54 21 28 49 4f 43 54 4c 5f L_CODE_T!(IOCTL_
0cd0: 53 54 4f 52 41 47 45 5f 42 41 53 45 2c 20 30 78 STORAGE_BASE, 0x
0ce0: 30 32 30 30 2c 20 4d 45 54 48 4f 44 5f 42 55 46 0200, METHOD_BUF
0cf0: 46 45 52 45 44 2c 20 46 49 4c 45 5f 52 45 41 44 FERED, FILE_READ
0d00: 5f 41 43 43 45 53 53 29 2c 0d 0a 09 49 4f 43 54 _ACCESS),...IOCT
0d10: 4c 5f 53 54 4f 52 41 47 45 5f 43 48 45 43 4b 5f L_STORAGE_CHECK_
0d20: 56 45 52 49 46 59 32 20 20 20 20 20 20 20 20 20 VERIFY2
0d30: 20 3d 20 43 54 4c 5f 43 4f 44 45 5f 54 21 28 49 = CTL_CODE_T!(I
0d40: 4f 43 54 4c 5f 53 54 4f 52 41 47 45 5f 42 41 53 OCTL_STORAGE_BAS
0d50: 45 2c 20 30 78 30 32 30 30 2c 20 4d 45 54 48 4f E, 0x0200, METHO
0d60: 44 5f 42 55 46 46 45 52 45 44 2c 20 46 49 4c 45 D_BUFFERED, FILE
0d70: 5f 41 4e 59 5f 41 43 43 45 53 53 29 2c 0d 0a 09 _ANY_ACCESS),...
0d80: 49 4f 43 54 4c 5f 53 54 4f 52 41 47 45 5f 4d 45 IOCTL_STORAGE_ME
0d90: 44 49 41 5f 52 45 4d 4f 56 41 4c 20 20 20 20 20 DIA_REMOVAL
0da0: 20 20 20 20 20 3d 20 43 54 4c 5f 43 4f 44 45 5f = CTL_CODE_
0db0: 54 21 28 49 4f 43 54 4c 5f 53 54 4f 52 41 47 45 T!(IOCTL_STORAGE
0dc0: 5f 42 41 53 45 2c 20 30 78 30 32 30 31 2c 20 4d _BASE, 0x0201, M
0dd0: 45 54 48 4f 44 5f 42 55 46 46 45 52 45 44 2c 20 ETHOD_BUFFERED,
0de0: 46 49 4c 45 5f 52 45 41 44 5f 41 43 43 45 53 53 FILE_READ_ACCESS
0df0: 29 2c 0d 0a 09 49 4f 43 54 4c 5f 53 54 4f 52 41 ),...IOCTL_STORA
0e00: 47 45 5f 45 4a 45 43 54 5f 4d 45 44 49 41 20 20 GE_EJECT_MEDIA
0e10: 20 20 20 20 20 20 20 20 20 20 3d 20 43 54 4c 5f = CTL_
0e20: 43 4f 44 45 5f 54 21 28 49 4f 43 54 4c 5f 53 54 CODE_T!(IOCTL_ST
0e30: 4f 52 41 47 45 5f 42 41 53 45 2c 20 30 78 30 32 ORAGE_BASE, 0x02
0e40: 30 32 2c 20 4d 45 54 48 4f 44 5f 42 55 46 46 45 02, METHOD_BUFFE
0e50: 52 45 44 2c 20 46 49 4c 45 5f 52 45 41 44 5f 41 RED, FILE_READ_A
0e60: 43 43 45 53 53 29 2c 0d 0a 09 49 4f 43 54 4c 5f CCESS),...IOCTL_
0e70: 53 54 4f 52 41 47 45 5f 4c 4f 41 44 5f 4d 45 44 STORAGE_LOAD_MED
0e80: 49 41 20 20 20 20 20 20 20 20 20 20 20 20 20 3d IA =
0e90: 20 43 54 4c 5f 43 4f 44 45 5f 54 21 28 49 4f 43 CTL_CODE_T!(IOC
0ea0: 54 4c 5f 53 54 4f 52 41 47 45 5f 42 41 53 45 2c TL_STORAGE_BASE,
0eb0: 20 30 78 30 32 30 33 2c 20 4d 45 54 48 4f 44 5f 0x0203, METHOD_
0ec0: 42 55 46 46 45 52 45 44 2c 20 46 49 4c 45 5f 52 BUFFERED, FILE_R
0ed0: 45 41 44 5f 41 43 43 45 53 53 29 2c 0d 0a 09 49 EAD_ACCESS),...I
0ee0: 4f 43 54 4c 5f 53 54 4f 52 41 47 45 5f 4c 4f 41 OCTL_STORAGE_LOA
0ef0: 44 5f 4d 45 44 49 41 32 20 20 20 20 20 20 20 20 D_MEDIA2
0f00: 20 20 20 20 3d 20 43 54 4c 5f 43 4f 44 45 5f 54 = CTL_CODE_T
0f10: 21 28 49 4f 43 54 4c 5f 53 54 4f 52 41 47 45 5f !(IOCTL_STORAGE_
0f20: 42 41 53 45 2c 20 30 78 30 32 30 33 2c 20 4d 45 BASE, 0x0203, ME
0f30: 54 48 4f 44 5f 42 55 46 46 45 52 45 44 2c 20 46 THOD_BUFFERED, F
0f40: 49 4c 45 5f 41 4e 59 5f 41 43 43 45 53 53 29 2c ILE_ANY_ACCESS),
0f50: 0d 0a 09 49 4f 43 54 4c 5f 53 54 4f 52 41 47 45 ...IOCTL_STORAGE
0f60: 5f 52 45 53 45 52 56 45 20 20 20 20 20 20 20 20 _RESERVE
0f70: 20 20 20 20 20 20 20 20 3d 20 43 54 4c 5f 43 4f = CTL_CO
0f80: 44 45 5f 54 21 28 49 4f 43 54 4c 5f 53 54 4f 52 DE_T!(IOCTL_STOR
0f90: 41 47 45 5f 42 41 53 45 2c 20 30 78 30 32 30 34 AGE_BASE, 0x0204
0fa0: 2c 20 4d 45 54 48 4f 44 5f 42 55 46 46 45 52 45 , METHOD_BUFFERE
0fb0: 44 2c 20 46 49 4c 45 5f 52 45 41 44 5f 41 43 43 D, FILE_READ_ACC
0fc0: 45 53 53 29 2c 0d 0a 09 49 4f 43 54 4c 5f 53 54 ESS),...IOCTL_ST
0fd0: 4f 52 41 47 45 5f 52 45 4c 45 41 53 45 20 20 20 ORAGE_RELEASE
0fe0: 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 43 = C
0ff0: 54 4c 5f 43 4f 44 45 5f 54 21 28 49 4f 43 54 4c TL_CODE_T!(IOCTL
1000: 5f 53 54 4f 52 41 47 45 5f 42 41 53 45 2c 20 30 _STORAGE_BASE, 0
1010: 78 30 32 30 35 2c 20 4d 45 54 48 4f 44 5f 42 55 x0205, METHOD_BU
1020: 46 46 45 52 45 44 2c 20 46 49 4c 45 5f 52 45 41 FFERED, FILE_REA
1030: 44 5f 41 43 43 45 53 53 29 2c 0d 0a 09 49 4f 43 D_ACCESS),...IOC
1040: 54 4c 5f 53 54 4f 52 41 47 45 5f 46 49 4e 44 5f TL_STORAGE_FIND_
1050: 4e 45 57 5f 44 45 56 49 43 45 53 20 20 20 20 20 NEW_DEVICES
1060: 20 20 3d 20 43 54 4c 5f 43 4f 44 45 5f 54 21 28 = CTL_CODE_T!(
1070: 49 4f 43 54 4c 5f 53 54 4f 52 41 47 45 5f 42 41 IOCTL_STORAGE_BA
1080: 53 45 2c 20 30 78 30 32 30 36 2c 20 4d 45 54 48 SE, 0x0206, METH
1090: 4f 44 5f 42 55 46 46 45 52 45 44 2c 20 46 49 4c OD_BUFFERED, FIL
10a0: 45 5f 52 45 41 44 5f 41 43 43 45 53 53 29 2c 0d E_READ_ACCESS),.
10b0: 0a 09 49 4f 43 54 4c 5f 53 54 4f 52 41 47 45 5f ..IOCTL_STORAGE_
10c0: 45 4a 45 43 54 49 4f 4e 5f 43 4f 4e 54 52 4f 4c EJECTION_CONTROL
10d0: 20 20 20 20 20 20 20 3d 20 43 54 4c 5f 43 4f 44 = CTL_COD
10e0: 45 5f 54 21 28 49 4f 43 54 4c 5f 53 54 4f 52 41 E_T!(IOCTL_STORA
10f0: 47 45 5f 42 41 53 45 2c 20 30 78 30 32 35 30 2c GE_BASE, 0x0250,
1100: 20 4d 45 54 48 4f 44 5f 42 55 46 46 45 52 45 44 METHOD_BUFFERED
1110: 2c 20 46 49 4c 45 5f 41 4e 59 5f 41 43 43 45 53 , FILE_ANY_ACCES
1120: 53 29 2c 0d 0a 09 49 4f 43 54 4c 5f 53 54 4f 52 S),...IOCTL_STOR
1130: 41 47 45 5f 4d 43 4e 5f 43 4f 4e 54 52 4f 4c 20 AGE_MCN_CONTROL
1140: 20 20 20 20 20 20 20 20 20 20 20 3d 20 43 54 4c = CTL
1150: 5f 43 4f 44 45 5f 54 21 28 49 4f 43 54 4c 5f 53 _CODE_T!(IOCTL_S
1160: 54 4f 52 41 47 45 5f 42 41 53 45 2c 20 30 78 30 TORAGE_BASE, 0x0
1170: 32 35 31 2c 20 4d 45 54 48 4f 44 5f 42 55 46 46 251, METHOD_BUFF
1180: 45 52 45 44 2c 20 46 49 4c 45 5f 41 4e 59 5f 41 ERED, FILE_ANY_A
1190: 43 43 45 53 53 29 2c 0d 0a 09 49 4f 43 54 4c 5f CCESS),...IOCTL_
11a0: 53 54 4f 52 41 47 45 5f 47 45 54 5f 4d 45 44 49 STORAGE_GET_MEDI
11b0: 41 5f 54 59 50 45 53 20 20 20 20 20 20 20 20 3d A_TYPES =
11c0: 20 43 54 4c 5f 43 4f 44 45 5f 54 21 28 49 4f 43 CTL_CODE_T!(IOC
11d0: 54 4c 5f 53 54 4f 52 41 47 45 5f 42 41 53 45 2c TL_STORAGE_BASE,
11e0: 20 30 78 30 33 30 30 2c 20 4d 45 54 48 4f 44 5f 0x0300, METHOD_
11f0: 42 55 46 46 45 52 45 44 2c 20 46 49 4c 45 5f 41 BUFFERED, FILE_A
1200: 4e 59 5f 41 43 43 45 53 53 29 2c 0d 0a 09 49 4f NY_ACCESS),...IO
1210: 43 54 4c 5f 53 54 4f 52 41 47 45 5f 47 45 54 5f CTL_STORAGE_GET_
1220: 4d 45 44 49 41 5f 54 59 50 45 53 5f 45 58 20 20 MEDIA_TYPES_EX
1230: 20 20 20 3d 20 43 54 4c 5f 43 4f 44 45 5f 54 21 = CTL_CODE_T!
1240: 28 49 4f 43 54 4c 5f 53 54 4f 52 41 47 45 5f 42 (IOCTL_STORAGE_B
1250: 41 53 45 2c 20 30 78 30 33 30 31 2c 20 4d 45 54 ASE, 0x0301, MET
1260: 48 4f 44 5f 42 55 46 46 45 52 45 44 2c 20 46 49 HOD_BUFFERED, FI
1270: 4c 45 5f 41 4e 59 5f 41 43 43 45 53 53 29 2c 0d LE_ANY_ACCESS),.
1280: 0a 09 49 4f 43 54 4c 5f 53 54 4f 52 41 47 45 5f ..IOCTL_STORAGE_
1290: 52 45 53 45 54 5f 42 55 53 20 20 20 20 20 20 20 RESET_BUS
12a0: 20 20 20 20 20 20 20 3d 20 43 54 4c 5f 43 4f 44 = CTL_COD
12b0: 45 5f 54 21 28 49 4f 43 54 4c 5f 53 54 4f 52 41 E_T!(IOCTL_STORA
12c0: 47 45 5f 42 41 53 45 2c 20 30 78 30 34 30 30 2c GE_BASE, 0x0400,
12d0: 20 4d 45 54 48 4f 44 5f 42 55 46 46 45 52 45 44 METHOD_BUFFERED
12e0: 2c 20 46 49 4c 45 5f 52 45 41 44 5f 41 43 43 45 , FILE_READ_ACCE
12f0: 53 53 29 2c 0d 0a 09 49 4f 43 54 4c 5f 53 54 4f SS),...IOCTL_STO
1300: 52 41 47 45 5f 52 45 53 45 54 5f 44 45 56 49 43 RAGE_RESET_DEVIC
1310: 45 20 20 20 20 20 20 20 20 20 20 20 3d 20 43 54 E = CT
1320: 4c 5f 43 4f 44 45 5f 54 21 28 49 4f 43 54 4c 5f L_CODE_T!(IOCTL_
1330: 53 54 4f 52 41 47 45 5f 42 41 53 45 2c 20 30 78 STORAGE_BASE, 0x
1340: 30 34 30 31 2c 20 4d 45 54 48 4f 44 5f 42 55 46 0401, METHOD_BUF
1350: 46 45 52 45 44 2c 20 46 49 4c 45 5f 52 45 41 44 FERED, FILE_READ
1360: 5f 41 43 43 45 53 53 29 2c 0d 0a 09 49 4f 43 54 _ACCESS),...IOCT
1370: 4c 5f 53 54 4f 52 41 47 45 5f 47 45 54 5f 44 45 L_STORAGE_GET_DE
1380: 56 49 43 45 5f 4e 55 4d 42 45 52 20 20 20 20 20 VICE_NUMBER
1390: 20 3d 20 43 54 4c 5f 43 4f 44 45 5f 54 21 28 49 = CTL_CODE_T!(I
13a0: 4f 43 54 4c 5f 53 54 4f 52 41 47 45 5f 42 41 53 OCTL_STORAGE_BAS
13b0: 45 2c 20 30 78 30 34 32 30 2c 20 4d 45 54 48 4f E, 0x0420, METHO
13c0: 44 5f 42 55 46 46 45 52 45 44 2c 20 46 49 4c 45 D_BUFFERED, FILE
13d0: 5f 41 4e 59 5f 41 43 43 45 53 53 29 2c 0d 0a 09 _ANY_ACCESS),...
13e0: 49 4f 43 54 4c 5f 53 54 4f 52 41 47 45 5f 50 52 IOCTL_STORAGE_PR
13f0: 45 44 49 43 54 5f 46 41 49 4c 55 52 45 20 20 20 EDICT_FAILURE
1400: 20 20 20 20 20 3d 20 43 54 4c 5f 43 4f 44 45 5f = CTL_CODE_
1410: 54 21 28 49 4f 43 54 4c 5f 53 54 4f 52 41 47 45 T!(IOCTL_STORAGE
1420: 5f 42 41 53 45 2c 20 30 78 30 34 34 30 2c 20 4d _BASE, 0x0440, M
1430: 45 54 48 4f 44 5f 42 55 46 46 45 52 45 44 2c 20 ETHOD_BUFFERED,
1440: 46 49 4c 45 5f 41 4e 59 5f 41 43 43 45 53 53 29 FILE_ANY_ACCESS)
1450: 2c 0d 0a 0d 0a 09 49 4f 43 54 4c 5f 44 49 53 4b ,.....IOCTL_DISK
1460: 5f 47 45 54 5f 44 52 49 56 45 5f 47 45 4f 4d 45 _GET_DRIVE_GEOME
1470: 54 52 59 20 20 20 20 20 20 20 20 3d 20 43 54 4c TRY = CTL
1480: 5f 43 4f 44 45 5f 54 21 28 49 4f 43 54 4c 5f 44 _CODE_T!(IOCTL_D
1490: 49 53 4b 5f 42 41 53 45 2c 20 30 2c 20 4d 45 54 ISK_BASE, 0, MET
14a0: 48 4f 44 5f 42 55 46 46 45 52 45 44 2c 20 46 49 HOD_BUFFERED, FI
14b0: 4c 45 5f 41 4e 59 5f 41 43 43 45 53 53 29 2c 0d LE_ANY_ACCESS),.
14c0: 0a 09 49 4f 43 54 4c 5f 44 49 53 4b 5f 47 45 54 ..IOCTL_DISK_GET
14d0: 5f 50 41 52 54 49 54 49 4f 4e 5f 49 4e 46 4f 20 _PARTITION_INFO
14e0: 20 20 20 20 20 20 20 3d 20 43 54 4c 5f 43 4f 44 = CTL_COD
14f0: 45 5f 54 21 28 49 4f 43 54 4c 5f 44 49 53 4b 5f E_T!(IOCTL_DISK_
1500: 42 41 53 45 2c 20 31 2c 20 4d 45 54 48 4f 44 5f BASE, 1, METHOD_
1510: 42 55 46 46 45 52 45 44 2c 20 46 49 4c 45 5f 52 BUFFERED, FILE_R
1520: 45 41 44 5f 41 43 43 45 53 53 29 2c 0d 0a 09 49 EAD_ACCESS),...I
1530: 4f 43 54 4c 5f 44 49 53 4b 5f 53 45 54 5f 50 41 OCTL_DISK_SET_PA
1540: 52 54 49 54 49 4f 4e 5f 49 4e 46 4f 20 20 20 20 RTITION_INFO
1550: 20 20 20 20 3d 20 43 54 4c 5f 43 4f 44 45 5f 54 = CTL_CODE_T
1560: 21 28 49 4f 43 54 4c 5f 44 49 53 4b 5f 42 41 53 !(IOCTL_DISK_BAS
1570: 45 2c 20 32 2c 20 4d 45 54 48 4f 44 5f 42 55 46 E, 2, METHOD_BUF
1580: 46 45 52 45 44 2c 20 46 49 4c 45 5f 52 45 41 44 FERED, FILE_READ
1590: 5f 41 43 43 45 53 53 7c 46 49 4c 45 5f 57 52 49 _ACCESS|FILE_WRI
15a0: 54 45 5f 41 43 43 45 53 53 29 2c 0d 0a 09 49 4f TE_ACCESS),...IO
15b0: 43 54 4c 5f 44 49 53 4b 5f 47 45 54 5f 44 52 49 CTL_DISK_GET_DRI
15c0: 56 45 5f 4c 41 59 4f 55 54 20 20 20 20 20 20 20 VE_LAYOUT
15d0: 20 20 20 3d 20 43 54 4c 5f 43 4f 44 45 5f 54 21 = CTL_CODE_T!
15e0: 28 49 4f 43 54 4c 5f 44 49 53 4b 5f 42 41 53 45 (IOCTL_DISK_BASE
15f0: 2c 20 33 2c 20 4d 45 54 48 4f 44 5f 42 55 46 46 , 3, METHOD_BUFF
1600: 45 52 45 44 2c 20 46 49 4c 45 5f 52 45 41 44 5f ERED, FILE_READ_
1610: 41 43 43 45 53 53 29 2c 0d 0a 09 49 4f 43 54 4c ACCESS),...IOCTL
1620: 5f 44 49 53 4b 5f 53 45 54 5f 44 52 49 56 45 5f _DISK_SET_DRIVE_
1630: 4c 41 59 4f 55 54 20 20 20 20 20 20 20 20 20 20 LAYOUT
1640: 3d 20 43 54 4c 5f 43 4f 44 45 5f 54 21 28 49 4f = CTL_CODE_T!(IO
1650: 43 54 4c 5f 44 49 53 4b 5f 42 41 53 45 2c 20 34 CTL_DISK_BASE, 4
1660: 2c 20 4d 45 54 48 4f 44 5f 42 55 46 46 45 52 45 , METHOD_BUFFERE
1670: 44 2c 20 46 49 4c 45 5f 52 45 41 44 5f 41 43 43 D, FILE_READ_ACC
1680: 45 53 53 7c 46 49 4c 45 5f 57 52 49 54 45 5f 41 ESS|FILE_WRITE_A
1690: 43 43 45 53 53 29 2c 0d 0a 09 49 4f 43 54 4c 5f CCESS),...IOCTL_
16a0: 44 49 53 4b 5f 56 45 52 49 46 59 20 20 20 20 20 DISK_VERIFY
16b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d =
16c0: 20 43 54 4c 5f 43 4f 44 45 5f 54 21 28 49 4f 43 CTL_CODE_T!(IOC
16d0: 54 4c 5f 44 49 53 4b 5f 42 41 53 45 2c 20 35 2c TL_DISK_BASE, 5,
16e0: 20 4d 45 54 48 4f 44 5f 42 55 46 46 45 52 45 44 METHOD_BUFFERED
16f0: 2c 20 46 49 4c 45 5f 41 4e 59 5f 41 43 43 45 53 , FILE_ANY_ACCES
1700: 53 29 2c 0d 0a 09 49 4f 43 54 4c 5f 44 49 53 4b S),...IOCTL_DISK
1710: 5f 46 4f 52 4d 41 54 5f 54 52 41 43 4b 53 20 20 _FORMAT_TRACKS
1720: 20 20 20 20 20 20 20 20 20 20 20 3d 20 43 54 4c = CTL
1730: 5f 43 4f 44 45 5f 54 21 28 49 4f 43 54 4c 5f 44 _CODE_T!(IOCTL_D
1740: 49 53 4b 5f 42 41 53 45 2c 20 36 2c 20 4d 45 54 ISK_BASE, 6, MET
1750: 48 4f 44 5f 42 55 46 46 45 52 45 44 2c 20 46 49 HOD_BUFFERED, FI
1760: 4c 45 5f 52 45 41 44 5f 41 43 43 45 53 53 7c 46 LE_READ_ACCESS|F
1770: 49 4c 45 5f 57 52 49 54 45 5f 41 43 43 45 53 53 ILE_WRITE_ACCESS
1780: 29 2c 0d 0a 09 49 4f 43 54 4c 5f 44 49 53 4b 5f ),...IOCTL_DISK_
1790: 52 45 41 53 53 49 47 4e 5f 42 4c 4f 43 4b 53 20 REASSIGN_BLOCKS
17a0: 20 20 20 20 20 20 20 20 20 20 3d 20 43 54 4c 5f = CTL_
17b0: 43 4f 44 45 5f 54 21 28 49 4f 43 54 4c 5f 44 49 CODE_T!(IOCTL_DI
17c0: 53 4b 5f 42 41 53 45 2c 20 37 2c 20 4d 45 54 48 SK_BASE, 7, METH
17d0: 4f 44 5f 42 55 46 46 45 52 45 44 2c 20 46 49 4c OD_BUFFERED, FIL
17e0: 45 5f 52 45 41 44 5f 41 43 43 45 53 53 7c 46 49 E_READ_ACCESS|FI
17f0: 4c 45 5f 57 52 49 54 45 5f 41 43 43 45 53 53 29 LE_WRITE_ACCESS)
1800: 2c 0d 0a 09 49 4f 43 54 4c 5f 44 49 53 4b 5f 50 ,...IOCTL_DISK_P
1810: 45 52 46 4f 52 4d 41 4e 43 45 20 20 20 20 20 20 ERFORMANCE
1820: 20 20 20 20 20 20 20 20 20 3d 20 43 54 4c 5f 43 = CTL_C
1830: 4f 44 45 5f 54 21 28 49 4f 43 54 4c 5f 44 49 53 ODE_T!(IOCTL_DIS
1840: 4b 5f 42 41 53 45 2c 20 38 2c 20 4d 45 54 48 4f K_BASE, 8, METHO
1850: 44 5f 42 55 46 46 45 52 45 44 2c 20 46 49 4c 45 D_BUFFERED, FILE
1860: 5f 41 4e 59 5f 41 43 43 45 53 53 29 2c 0d 0a 09 _ANY_ACCESS),...
1870: 49 4f 43 54 4c 5f 44 49 53 4b 5f 49 53 5f 57 52 IOCTL_DISK_IS_WR
1880: 49 54 41 42 4c 45 20 20 20 20 20 20 20 20 20 20 ITABLE
1890: 20 20 20 20 20 3d 20 43 54 4c 5f 43 4f 44 45 5f = CTL_CODE_
18a0: 54 21 28 49 4f 43 54 4c 5f 44 49 53 4b 5f 42 41 T!(IOCTL_DISK_BA
18b0: 53 45 2c 20 39 2c 20 4d 45 54 48 4f 44 5f 42 55 SE, 9, METHOD_BU
18c0: 46 46 45 52 45 44 2c 20 46 49 4c 45 5f 41 4e 59 FFERED, FILE_ANY
18d0: 5f 41 43 43 45 53 53 29 2c 0d 0a 09 49 4f 43 54 _ACCESS),...IOCT
18e0: 4c 5f 44 49 53 4b 5f 4c 4f 47 47 49 4e 47 20 20 L_DISK_LOGGING
18f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1900: 20 3d 20 43 54 4c 5f 43 4f 44 45 5f 54 21 28 49 = CTL_CODE_T!(I
1910: 4f 43 54 4c 5f 44 49 53 4b 5f 42 41 53 45 2c 20 OCTL_DISK_BASE,
1920: 31 30 2c 20 4d 45 54 48 4f 44 5f 42 55 46 46 45 10, METHOD_BUFFE
1930: 52 45 44 2c 20 46 49 4c 45 5f 41 4e 59 5f 41 43 RED, FILE_ANY_AC
1940: 43 45 53 53 29 2c 0d 0a 09 49 4f 43 54 4c 5f 44 CESS),...IOCTL_D
1950: 49 53 4b 5f 46 4f 52 4d 41 54 5f 54 52 41 43 4b ISK_FORMAT_TRACK
1960: 53 5f 45 58 20 20 20 20 20 20 20 20 20 20 3d 20 S_EX =
1970: 43 54 4c 5f 43 4f 44 45 5f 54 21 28 49 4f 43 54 CTL_CODE_T!(IOCT
1980: 4c 5f 44 49 53 4b 5f 42 41 53 45 2c 20 31 31 2c L_DISK_BASE, 11,
1990: 20 4d 45 54 48 4f 44 5f 42 55 46 46 45 52 45 44 METHOD_BUFFERED
19a0: 2c 20 46 49 4c 45 5f 52 45 41 44 5f 41 43 43 45 , FILE_READ_ACCE
19b0: 53 53 7c 46 49 4c 45 5f 57 52 49 54 45 5f 41 43 SS|FILE_WRITE_AC
19c0: 43 45 53 53 29 2c 0d 0a 09 49 4f 43 54 4c 5f 44 CESS),...IOCTL_D
19d0: 49 53 4b 5f 48 49 53 54 4f 47 52 41 4d 5f 53 54 ISK_HISTOGRAM_ST
19e0: 52 55 43 54 55 52 45 20 20 20 20 20 20 20 3d 20 RUCTURE =
19f0: 43 54 4c 5f 43 4f 44 45 5f 54 21 28 49 4f 43 54 CTL_CODE_T!(IOCT
1a00: 4c 5f 44 49 53 4b 5f 42 41 53 45 2c 20 31 32 2c L_DISK_BASE, 12,
1a10: 20 4d 45 54 48 4f 44 5f 42 55 46 46 45 52 45 44 METHOD_BUFFERED
1a20: 2c 20 46 49 4c 45 5f 41 4e 59 5f 41 43 43 45 53 , FILE_ANY_ACCES
1a30: 53 29 2c 0d 0a 09 49 4f 43 54 4c 5f 44 49 53 4b S),...IOCTL_DISK
1a40: 5f 48 49 53 54 4f 47 52 41 4d 5f 44 41 54 41 20 _HISTOGRAM_DATA
1a50: 20 20 20 20 20 20 20 20 20 20 20 3d 20 43 54 4c = CTL
1a60: 5f 43 4f 44 45 5f 54 21 28 49 4f 43 54 4c 5f 44 _CODE_T!(IOCTL_D
1a70: 49 53 4b 5f 42 41 53 45 2c 20 31 33 2c 20 4d 45 ISK_BASE, 13, ME
1a80: 54 48 4f 44 5f 42 55 46 46 45 52 45 44 2c 20 46 THOD_BUFFERED, F
1a90: 49 4c 45 5f 41 4e 59 5f 41 43 43 45 53 53 29 2c ILE_ANY_ACCESS),
1aa0: 0d 0a 09 49 4f 43 54 4c 5f 44 49 53 4b 5f 48 49 ...IOCTL_DISK_HI
1ab0: 53 54 4f 47 52 41 4d 5f 52 45 53 45 54 20 20 20 STOGRAM_RESET
1ac0: 20 20 20 20 20 20 20 20 3d 20 43 54 4c 5f 43 4f = CTL_CO
1ad0: 44 45 5f 54 21 28 49 4f 43 54 4c 5f 44 49 53 4b DE_T!(IOCTL_DISK
1ae0: 5f 42 41 53 45 2c 20 31 34 2c 20 4d 45 54 48 4f _BASE, 14, METHO
1af0: 44 5f 42 55 46 46 45 52 45 44 2c 20 46 49 4c 45 D_BUFFERED, FILE
1b00: 5f 41 4e 59 5f 41 43 43 45 53 53 29 2c 0d 0a 09 _ANY_ACCESS),...
1b10: 49 4f 43 54 4c 5f 44 49 53 4b 5f 52 45 51 55 45 IOCTL_DISK_REQUE
1b20: 53 54 5f 53 54 52 55 43 54 55 52 45 20 20 20 20 ST_STRUCTURE
1b30: 20 20 20 20 20 3d 20 43 54 4c 5f 43 4f 44 45 5f = CTL_CODE_
1b40: 54 21 28 49 4f 43 54 4c 5f 44 49 53 4b 5f 42 41 T!(IOCTL_DISK_BA
1b50: 53 45 2c 20 31 35 2c 20 4d 45 54 48 4f 44 5f 42 SE, 15, METHOD_B
1b60: 55 46 46 45 52 45 44 2c 20 46 49 4c 45 5f 41 4e UFFERED, FILE_AN
1b70: 59 5f 41 43 43 45 53 53 29 2c 0d 0a 09 49 4f 43 Y_ACCESS),...IOC
1b80: 54 4c 5f 44 49 53 4b 5f 52 45 51 55 45 53 54 5f TL_DISK_REQUEST_
1b90: 44 41 54 41 20 20 20 20 20 20 20 20 20 20 20 20 DATA
1ba0: 20 20 3d 20 43 54 4c 5f 43 4f 44 45 5f 54 21 28 = CTL_CODE_T!(
1bb0: 49 4f 43 54 4c 5f 44 49 53 4b 5f 42 41 53 45 2c IOCTL_DISK_BASE,
1bc0: 20 31 36 2c 20 4d 45 54 48 4f 44 5f 42 55 46 46 16, METHOD_BUFF
1bd0: 45 52 45 44 2c 20 46 49 4c 45 5f 41 4e 59 5f 41 ERED, FILE_ANY_A
1be0: 43 43 45 53 53 29 2c 0d 0a 09 49 4f 43 54 4c 5f CCESS),...IOCTL_
1bf0: 44 49 53 4b 5f 47 45 54 5f 50 41 52 54 49 54 49 DISK_GET_PARTITI
1c00: 4f 4e 5f 49 4e 46 4f 5f 45 58 20 20 20 20 20 3d ON_INFO_EX =
1c10: 20 43 54 4c 5f 43 4f 44 45 5f 54 21 28 49 4f 43 CTL_CODE_T!(IOC
1c20: 54 4c 5f 44 49 53 4b 5f 42 41 53 45 2c 20 30 78 TL_DISK_BASE, 0x
1c30: 31 32 2c 20 4d 45 54 48 4f 44 5f 42 55 46 46 45 12, METHOD_BUFFE
1c40: 52 45 44 2c 20 46 49 4c 45 5f 41 4e 59 5f 41 43 RED, FILE_ANY_AC
1c50: 43 45 53 53 29 2c 0d 0a 09 49 4f 43 54 4c 5f 44 CESS),...IOCTL_D
1c60: 49 53 4b 5f 53 45 54 5f 50 41 52 54 49 54 49 4f ISK_SET_PARTITIO
1c70: 4e 5f 49 4e 46 4f 5f 45 58 20 20 20 20 20 3d 20 N_INFO_EX =
1c80: 43 54 4c 5f 43 4f 44 45 5f 54 21 28 49 4f 43 54 CTL_CODE_T!(IOCT
1c90: 4c 5f 44 49 53 4b 5f 42 41 53 45 2c 20 30 78 31 L_DISK_BASE, 0x1
1ca0: 33 2c 20 4d 45 54 48 4f 44 5f 42 55 46 46 45 52 3, METHOD_BUFFER
1cb0: 45 44 2c 20 46 49 4c 45 5f 52 45 41 44 5f 41 43 ED, FILE_READ_AC
1cc0: 43 45 53 53 20 7c 20 46 49 4c 45 5f 57 52 49 54 CESS | FILE_WRIT
1cd0: 45 5f 41 43 43 45 53 53 29 2c 0d 0a 09 49 4f 43 E_ACCESS),...IOC
1ce0: 54 4c 5f 44 49 53 4b 5f 47 45 54 5f 44 52 49 56 TL_DISK_GET_DRIV
1cf0: 45 5f 4c 41 59 4f 55 54 5f 45 58 20 20 20 20 20 E_LAYOUT_EX
1d00: 20 20 3d 20 43 54 4c 5f 43 4f 44 45 5f 54 21 28 = CTL_CODE_T!(
1d10: 49 4f 43 54 4c 5f 44 49 53 4b 5f 42 41 53 45 2c IOCTL_DISK_BASE,
1d20: 20 30 78 31 34 2c 20 4d 45 54 48 4f 44 5f 42 55 0x14, METHOD_BU
1d30: 46 46 45 52 45 44 2c 20 46 49 4c 45 5f 41 4e 59 FFERED, FILE_ANY
1d40: 5f 41 43 43 45 53 53 29 2c 0d 0a 09 49 4f 43 54 _ACCESS),...IOCT
1d50: 4c 5f 44 49 53 4b 5f 53 45 54 5f 44 52 49 56 45 L_DISK_SET_DRIVE
1d60: 5f 4c 41 59 4f 55 54 5f 45 58 20 20 20 20 20 20 _LAYOUT_EX
1d70: 20 3d 20 43 54 4c 5f 43 4f 44 45 5f 54 21 28 49 = CTL_CODE_T!(I
1d80: 4f 43 54 4c 5f 44 49 53 4b 5f 42 41 53 45 2c 20 OCTL_DISK_BASE,
1d90: 30 78 31 35 2c 20 4d 45 54 48 4f 44 5f 42 55 46 0x15, METHOD_BUF
1da0: 46 45 52 45 44 2c 20 46 49 4c 45 5f 52 45 41 44 FERED, FILE_READ
1db0: 5f 41 43 43 45 53 53 20 7c 20 46 49 4c 45 5f 57 _ACCESS | FILE_W
1dc0: 52 49 54 45 5f 41 43 43 45 53 53 29 2c 0d 0a 09 RITE_ACCESS),...
1dd0: 49 4f 43 54 4c 5f 44 49 53 4b 5f 43 52 45 41 54 IOCTL_DISK_CREAT
1de0: 45 5f 44 49 53 4b 20 20 20 20 20 20 20 20 20 20 E_DISK
1df0: 20 20 20 20 20 3d 20 43 54 4c 5f 43 4f 44 45 5f = CTL_CODE_
1e00: 54 21 28 49 4f 43 54 4c 5f 44 49 53 4b 5f 42 41 T!(IOCTL_DISK_BA
1e10: 53 45 2c 20 30 78 31 36 2c 20 4d 45 54 48 4f 44 SE, 0x16, METHOD
1e20: 5f 42 55 46 46 45 52 45 44 2c 20 46 49 4c 45 5f _BUFFERED, FILE_
1e30: 52 45 41 44 5f 41 43 43 45 53 53 20 7c 20 46 49 READ_ACCESS | FI
1e40: 4c 45 5f 57 52 49 54 45 5f 41 43 43 45 53 53 29 LE_WRITE_ACCESS)
1e50: 2c 0d 0a 09 49 4f 43 54 4c 5f 44 49 53 4b 5f 47 ,...IOCTL_DISK_G
1e60: 45 54 5f 4c 45 4e 47 54 48 5f 49 4e 46 4f 20 20 ET_LENGTH_INFO
1e70: 20 20 20 20 20 20 20 20 20 3d 20 43 54 4c 5f 43 = CTL_C
1e80: 4f 44 45 5f 54 21 28 49 4f 43 54 4c 5f 44 49 53 ODE_T!(IOCTL_DIS
1e90: 4b 5f 42 41 53 45 2c 20 30 78 31 37 2c 20 4d 45 K_BASE, 0x17, ME
1ea0: 54 48 4f 44 5f 42 55 46 46 45 52 45 44 2c 20 46 THOD_BUFFERED, F
1eb0: 49 4c 45 5f 52 45 41 44 5f 41 43 43 45 53 53 29 ILE_READ_ACCESS)
1ec0: 2c 0d 0a 09 49 4f 43 54 4c 5f 44 49 53 4b 5f 50 ,...IOCTL_DISK_P
1ed0: 45 52 46 4f 52 4d 41 4e 43 45 5f 4f 46 46 20 20 ERFORMANCE_OFF
1ee0: 20 20 20 20 20 20 20 20 20 3d 20 43 54 4c 5f 43 = CTL_C
1ef0: 4f 44 45 5f 54 21 28 49 4f 43 54 4c 5f 44 49 53 ODE_T!(IOCTL_DIS
1f00: 4b 5f 42 41 53 45 2c 20 30 78 31 38 2c 20 4d 45 K_BASE, 0x18, ME
1f10: 54 48 4f 44 5f 42 55 46 46 45 52 45 44 2c 20 46 THOD_BUFFERED, F
1f20: 49 4c 45 5f 41 4e 59 5f 41 43 43 45 53 53 29 2c ILE_ANY_ACCESS),
1f30: 0d 0a 09 49 4f 43 54 4c 5f 44 49 53 4b 5f 47 45 ...IOCTL_DISK_GE
1f40: 54 5f 44 52 49 56 45 5f 47 45 4f 4d 45 54 52 59 T_DRIVE_GEOMETRY
1f50: 5f 45 58 20 20 20 20 20 3d 20 43 54 4c 5f 43 4f _EX = CTL_CO
1f60: 44 45 5f 54 21 28 49 4f 43 54 4c 5f 44 49 53 4b DE_T!(IOCTL_DISK
1f70: 5f 42 41 53 45 2c 20 30 78 32 38 2c 20 4d 45 54 _BASE, 0x28, MET
1f80: 48 4f 44 5f 42 55 46 46 45 52 45 44 2c 20 46 49 HOD_BUFFERED, FI
1f90: 4c 45 5f 41 4e 59 5f 41 43 43 45 53 53 29 2c 0d LE_ANY_ACCESS),.
1fa0: 0a 09 49 4f 43 54 4c 5f 44 49 53 4b 5f 47 52 4f ..IOCTL_DISK_GRO
1fb0: 57 5f 50 41 52 54 49 54 49 4f 4e 20 20 20 20 20 W_PARTITION
1fc0: 20 20 20 20 20 20 20 3d 20 43 54 4c 5f 43 4f 44 = CTL_COD
1fd0: 45 5f 54 21 28 49 4f 43 54 4c 5f 44 49 53 4b 5f E_T!(IOCTL_DISK_
1fe0: 42 41 53 45 2c 20 30 78 33 34 2c 20 4d 45 54 48 BASE, 0x34, METH
1ff0: 4f 44 5f 42 55 46 46 45 52 45 44 2c 20 46 49 4c OD_BUFFERED, FIL
2000: 45 5f 52 45 41 44 5f 41 43 43 45 53 53 20 7c 20 E_READ_ACCESS |
2010: 46 49 4c 45 5f 57 52 49 54 45 5f 41 43 43 45 53 FILE_WRITE_ACCES
2020: 53 29 2c 0d 0a 09 49 4f 43 54 4c 5f 44 49 53 4b S),...IOCTL_DISK
2030: 5f 47 45 54 5f 43 41 43 48 45 5f 49 4e 46 4f 52 _GET_CACHE_INFOR
2040: 4d 41 54 49 4f 4e 20 20 20 20 20 3d 20 43 54 4c MATION = CTL
2050: 5f 43 4f 44 45 5f 54 21 28 49 4f 43 54 4c 5f 44 _CODE_T!(IOCTL_D
2060: 49 53 4b 5f 42 41 53 45 2c 20 30 78 33 35 2c 20 ISK_BASE, 0x35,
2070: 4d 45 54 48 4f 44 5f 42 55 46 46 45 52 45 44 2c METHOD_BUFFERED,
2080: 20 46 49 4c 45 5f 52 45 41 44 5f 41 43 43 45 53 FILE_READ_ACCES
2090: 53 29 2c 0d 0a 09 49 4f 43 54 4c 5f 44 49 53 4b S),...IOCTL_DISK
20a0: 5f 53 45 54 5f 43 41 43 48 45 5f 49 4e 46 4f 52 _SET_CACHE_INFOR
20b0: 4d 41 54 49 4f 4e 20 20 20 20 20 3d 20 43 54 4c MATION = CTL
20c0: 5f 43 4f 44 45 5f 54 21 28 49 4f 43 54 4c 5f 44 _CODE_T!(IOCTL_D
20d0: 49 53 4b 5f 42 41 53 45 2c 20 30 78 33 36 2c 20 ISK_BASE, 0x36,
20e0: 4d 45 54 48 4f 44 5f 42 55 46 46 45 52 45 44 2c METHOD_BUFFERED,
20f0: 20 46 49 4c 45 5f 52 45 41 44 5f 41 43 43 45 53 FILE_READ_ACCES
2100: 53 20 7c 20 46 49 4c 45 5f 57 52 49 54 45 5f 41 S | FILE_WRITE_A
2110: 43 43 45 53 53 29 2c 0d 0a 09 49 4f 43 54 4c 5f CCESS),...IOCTL_
2120: 44 49 53 4b 5f 44 45 4c 45 54 45 5f 44 52 49 56 DISK_DELETE_DRIV
2130: 45 5f 4c 41 59 4f 55 54 20 20 20 20 20 20 20 3d E_LAYOUT =
2140: 20 43 54 4c 5f 43 4f 44 45 5f 54 21 28 49 4f 43 CTL_CODE_T!(IOC
2150: 54 4c 5f 44 49 53 4b 5f 42 41 53 45 2c 20 30 78 TL_DISK_BASE, 0x
2160: 34 30 2c 20 4d 45 54 48 4f 44 5f 42 55 46 46 45 40, METHOD_BUFFE
2170: 52 45 44 2c 20 46 49 4c 45 5f 52 45 41 44 5f 41 RED, FILE_READ_A
2180: 43 43 45 53 53 20 7c 20 46 49 4c 45 5f 57 52 49 CCESS | FILE_WRI
2190: 54 45 5f 41 43 43 45 53 53 29 2c 0d 0a 09 49 4f TE_ACCESS),...IO
21a0: 43 54 4c 5f 44 49 53 4b 5f 55 50 44 41 54 45 5f CTL_DISK_UPDATE_
21b0: 50 52 4f 50 45 52 54 49 45 53 20 20 20 20 20 20 PROPERTIES
21c0: 20 20 20 3d 20 43 54 4c 5f 43 4f 44 45 5f 54 21 = CTL_CODE_T!
21d0: 28 49 4f 43 54 4c 5f 44 49 53 4b 5f 42 41 53 45 (IOCTL_DISK_BASE
21e0: 2c 20 30 78 35 30 2c 20 4d 45 54 48 4f 44 5f 42 , 0x50, METHOD_B
21f0: 55 46 46 45 52 45 44 2c 20 46 49 4c 45 5f 41 4e UFFERED, FILE_AN
2200: 59 5f 41 43 43 45 53 53 29 2c 0d 0a 09 49 4f 43 Y_ACCESS),...IOC
2210: 54 4c 5f 44 49 53 4b 5f 43 48 45 43 4b 5f 56 45 TL_DISK_CHECK_VE
2220: 52 49 46 59 20 20 20 20 20 20 20 20 20 20 20 20 RIFY
2230: 20 20 3d 20 43 54 4c 5f 43 4f 44 45 5f 54 21 28 = CTL_CODE_T!(
2240: 49 4f 43 54 4c 5f 44 49 53 4b 5f 42 41 53 45 2c IOCTL_DISK_BASE,
2250: 20 30 78 32 30 30 2c 20 4d 45 54 48 4f 44 5f 42 0x200, METHOD_B
2260: 55 46 46 45 52 45 44 2c 20 46 49 4c 45 5f 52 45 UFFERED, FILE_RE
2270: 41 44 5f 41 43 43 45 53 53 29 2c 0d 0a 09 49 4f AD_ACCESS),...IO
2280: 43 54 4c 5f 44 49 53 4b 5f 4d 45 44 49 41 5f 52 CTL_DISK_MEDIA_R
2290: 45 4d 4f 56 41 4c 20 20 20 20 20 20 20 20 20 20 EMOVAL
22a0: 20 20 20 3d 20 43 54 4c 5f 43 4f 44 45 5f 54 21 = CTL_CODE_T!
22b0: 28 49 4f 43 54 4c 5f 44 49 53 4b 5f 42 41 53 45 (IOCTL_DISK_BASE
22c0: 2c 20 30 78 32 30 31 2c 20 4d 45 54 48 4f 44 5f , 0x201, METHOD_
22d0: 42 55 46 46 45 52 45 44 2c 20 46 49 4c 45 5f 52 BUFFERED, FILE_R
22e0: 45 41 44 5f 41 43 43 45 53 53 29 2c 0d 0a 09 49 EAD_ACCESS),...I
22f0: 4f 43 54 4c 5f 44 49 53 4b 5f 45 4a 45 43 54 5f OCTL_DISK_EJECT_
2300: 4d 45 44 49 41 20 20 20 20 20 20 20 20 20 20 20 MEDIA
2310: 20 20 20 20 3d 20 43 54 4c 5f 43 4f 44 45 5f 54 = CTL_CODE_T
2320: 21 28 49 4f 43 54 4c 5f 44 49 53 4b 5f 42 41 53 !(IOCTL_DISK_BAS
2330: 45 2c 20 30 78 32 30 32 2c 20 4d 45 54 48 4f 44 E, 0x202, METHOD
2340: 5f 42 55 46 46 45 52 45 44 2c 20 46 49 4c 45 5f _BUFFERED, FILE_
2350: 52 45 41 44 5f 41 43 43 45 53 53 29 2c 0d 0a 09 READ_ACCESS),...
2360: 49 4f 43 54 4c 5f 44 49 53 4b 5f 4c 4f 41 44 5f IOCTL_DISK_LOAD_
2370: 4d 45 44 49 41 20 20 20 20 20 20 20 20 20 20 20 MEDIA
2380: 20 20 20 20 20 3d 20 43 54 4c 5f 43 4f 44 45 5f = CTL_CODE_
2390: 54 21 28 49 4f 43 54 4c 5f 44 49 53 4b 5f 42 41 T!(IOCTL_DISK_BA
23a0: 53 45 2c 20 30 78 32 30 33 2c 20 4d 45 54 48 4f SE, 0x203, METHO
23b0: 44 5f 42 55 46 46 45 52 45 44 2c 20 46 49 4c 45 D_BUFFERED, FILE
23c0: 5f 52 45 41 44 5f 41 43 43 45 53 53 29 2c 0d 0a _READ_ACCESS),..
23d0: 09 49 4f 43 54 4c 5f 44 49 53 4b 5f 52 45 53 45 .IOCTL_DISK_RESE
23e0: 52 56 45 20 20 20 20 20 20 20 20 20 20 20 20 20 RVE
23f0: 20 20 20 20 20 20 3d 20 43 54 4c 5f 43 4f 44 45 = CTL_CODE
2400: 5f 54 21 28 49 4f 43 54 4c 5f 44 49 53 4b 5f 42 _T!(IOCTL_DISK_B
2410: 41 53 45 2c 20 30 78 32 30 34 2c 20 4d 45 54 48 ASE, 0x204, METH
2420: 4f 44 5f 42 55 46 46 45 52 45 44 2c 20 46 49 4c OD_BUFFERED, FIL
2430: 45 5f 52 45 41 44 5f 41 43 43 45 53 53 29 2c 0d E_READ_ACCESS),.
2440: 0a 09 49 4f 43 54 4c 5f 44 49 53 4b 5f 52 45 4c ..IOCTL_DISK_REL
2450: 45 41 53 45 20 20 20 20 20 20 20 20 20 20 20 20 EASE
2460: 20 20 20 20 20 20 20 3d 20 43 54 4c 5f 43 4f 44 = CTL_COD
2470: 45 5f 54 21 28 49 4f 43 54 4c 5f 44 49 53 4b 5f E_T!(IOCTL_DISK_
2480: 42 41 53 45 2c 20 30 78 32 30 35 2c 20 4d 45 54 BASE, 0x205, MET
2490: 48 4f 44 5f 42 55 46 46 45 52 45 44 2c 20 46 49 HOD_BUFFERED, FI
24a0: 4c 45 5f 52 45 41 44 5f 41 43 43 45 53 53 29 2c LE_READ_ACCESS),
24b0: 0d 0a 09 49 4f 43 54 4c 5f 44 49 53 4b 5f 46 49 ...IOCTL_DISK_FI
24c0: 4e 44 5f 4e 45 57 5f 44 45 56 49 43 45 53 20 20 ND_NEW_DEVICES
24d0: 20 20 20 20 20 20 20 20 3d 20 43 54 4c 5f 43 4f = CTL_CO
24e0: 44 45 5f 54 21 28 49 4f 43 54 4c 5f 44 49 53 4b DE_T!(IOCTL_DISK
24f0: 5f 42 41 53 45 2c 20 30 78 32 30 36 2c 20 4d 45 _BASE, 0x206, ME
2500: 54 48 4f 44 5f 42 55 46 46 45 52 45 44 2c 20 46 THOD_BUFFERED, F
2510: 49 4c 45 5f 52 45 41 44 5f 41 43 43 45 53 53 29 ILE_READ_ACCESS)
2520: 2c 0d 0a 09 49 4f 43 54 4c 5f 44 49 53 4b 5f 52 ,...IOCTL_DISK_R
2530: 45 4d 4f 56 45 5f 44 45 56 49 43 45 20 20 20 20 EMOVE_DEVICE
2540: 20 20 20 20 20 20 20 20 20 3d 20 43 54 4c 5f 43 = CTL_C
2550: 4f 44 45 5f 54 21 28 49 4f 43 54 4c 5f 44 49 53 ODE_T!(IOCTL_DIS
2560: 4b 5f 42 41 53 45 2c 20 30 78 32 30 37 2c 20 4d K_BASE, 0x207, M
2570: 45 54 48 4f 44 5f 42 55 46 46 45 52 45 44 2c 20 ETHOD_BUFFERED,
2580: 46 49 4c 45 5f 52 45 41 44 5f 41 43 43 45 53 53 FILE_READ_ACCESS
2590: 29 2c 0d 0a 09 49 4f 43 54 4c 5f 44 49 53 4b 5f ),...IOCTL_DISK_
25a0: 47 45 54 5f 4d 45 44 49 41 5f 54 59 50 45 53 20 GET_MEDIA_TYPES
25b0: 20 20 20 20 20 20 20 20 20 20 3d 20 43 54 4c 5f = CTL_
25c0: 43 4f 44 45 5f 54 21 28 49 4f 43 54 4c 5f 44 49 CODE_T!(IOCTL_DI
25d0: 53 4b 5f 42 41 53 45 2c 20 30 78 33 30 30 2c 20 SK_BASE, 0x300,
25e0: 4d 45 54 48 4f 44 5f 42 55 46 46 45 52 45 44 2c METHOD_BUFFERED,
25f0: 20 46 49 4c 45 5f 41 4e 59 5f 41 43 43 45 53 53 FILE_ANY_ACCESS
2600: 29 2c 0d 0a 09 49 4f 43 54 4c 5f 44 49 53 4b 5f ),...IOCTL_DISK_
2610: 55 50 44 41 54 45 5f 44 52 49 56 45 5f 53 49 5a UPDATE_DRIVE_SIZ
2620: 45 20 20 20 20 20 20 20 20 20 3d 20 43 54 4c 5f E = CTL_
2630: 43 4f 44 45 5f 54 21 28 49 4f 43 54 4c 5f 44 49 CODE_T!(IOCTL_DI
2640: 53 4b 5f 42 41 53 45 2c 20 30 78 30 30 33 32 2c SK_BASE, 0x0032,
2650: 20 4d 45 54 48 4f 44 5f 42 55 46 46 45 52 45 44 METHOD_BUFFERED
2660: 2c 20 46 49 4c 45 5f 52 45 41 44 5f 41 43 43 45 , FILE_READ_ACCE
2670: 53 53 20 7c 20 46 49 4c 45 5f 57 52 49 54 45 5f SS | FILE_WRITE_
2680: 41 43 43 45 53 53 29 2c 0d 0a 09 49 4f 43 54 4c ACCESS),...IOCTL
2690: 5f 53 45 52 49 41 4c 5f 4c 53 52 4d 53 54 5f 49 _SERIAL_LSRMST_I
26a0: 4e 53 45 52 54 20 20 20 20 20 20 20 20 20 20 20 NSERT
26b0: 3d 20 43 54 4c 5f 43 4f 44 45 5f 54 21 28 46 49 = CTL_CODE_T!(FI
26c0: 4c 45 5f 44 45 56 49 43 45 5f 53 45 52 49 41 4c LE_DEVICE_SERIAL
26d0: 5f 50 4f 52 54 2c 20 33 31 2c 20 4d 45 54 48 4f _PORT, 31, METHO
26e0: 44 5f 42 55 46 46 45 52 45 44 2c 20 46 49 4c 45 D_BUFFERED, FILE
26f0: 5f 41 4e 59 5f 41 43 43 45 53 53 29 2c 0d 0a 0d _ANY_ACCESS),...
2700: 0a 09 49 4f 43 54 4c 5f 56 4f 4c 55 4d 45 5f 47 ..IOCTL_VOLUME_G
2710: 45 54 5f 56 4f 4c 55 4d 45 5f 44 49 53 4b 5f 45 ET_VOLUME_DISK_E
2720: 58 54 45 4e 54 53 20 3d 20 43 54 4c 5f 43 4f 44 XTENTS = CTL_COD
2730: 45 5f 54 21 28 49 4f 43 54 4c 5f 56 4f 4c 55 4d E_T!(IOCTL_VOLUM
2740: 45 5f 42 41 53 45 2c 20 30 2c 20 4d 45 54 48 4f E_BASE, 0, METHO
2750: 44 5f 42 55 46 46 45 52 45 44 2c 20 46 49 4c 45 D_BUFFERED, FILE
2760: 5f 41 4e 59 5f 41 43 43 45 53 53 29 2c 0d 0a 09 _ANY_ACCESS),...
2770: 49 4f 43 54 4c 5f 56 4f 4c 55 4d 45 5f 49 53 5f IOCTL_VOLUME_IS_
2780: 43 4c 55 53 54 45 52 45 44 20 20 20 20 20 20 20 CLUSTERED
2790: 20 20 20 20 20 3d 20 43 54 4c 5f 43 4f 44 45 5f = CTL_CODE_
27a0: 54 21 28 49 4f 43 54 4c 5f 56 4f 4c 55 4d 45 5f T!(IOCTL_VOLUME_
27b0: 42 41 53 45 2c 20 31 32 2c 20 4d 45 54 48 4f 44 BASE, 12, METHOD
27c0: 5f 42 55 46 46 45 52 45 44 2c 20 46 49 4c 45 5f _BUFFERED, FILE_
27d0: 41 4e 59 5f 41 43 43 45 53 53 29 2c 0d 0a 0d 0a ANY_ACCESS),....
27e0: 09 46 53 43 54 4c 5f 4c 4f 43 4b 5f 56 4f 4c 55 .FSCTL_LOCK_VOLU
27f0: 4d 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ME
2800: 20 20 20 20 20 20 3d 20 43 54 4c 5f 43 4f 44 45 = CTL_CODE
2810: 5f 54 21 28 46 49 4c 45 5f 44 45 56 49 43 45 5f _T!(FILE_DEVICE_
2820: 46 49 4c 45 5f 53 59 53 54 45 4d 2c 20 36 2c 20 FILE_SYSTEM, 6,
2830: 4d 45 54 48 4f 44 5f 42 55 46 46 45 52 45 44 2c METHOD_BUFFERED,
2840: 20 46 49 4c 45 5f 41 4e 59 5f 41 43 43 45 53 53 FILE_ANY_ACCESS
2850: 29 2c 0d 0a 09 46 53 43 54 4c 5f 55 4e 4c 4f 43 ),...FSCTL_UNLOC
2860: 4b 5f 56 4f 4c 55 4d 45 20 20 20 20 20 20 20 20 K_VOLUME
2870: 20 20 20 20 20 20 20 20 20 20 3d 20 43 54 4c 5f = CTL_
2880: 43 4f 44 45 5f 54 21 28 46 49 4c 45 5f 44 45 56 CODE_T!(FILE_DEV
2890: 49 43 45 5f 46 49 4c 45 5f 53 59 53 54 45 4d 2c ICE_FILE_SYSTEM,
28a0: 20 37 2c 20 4d 45 54 48 4f 44 5f 42 55 46 46 45 7, METHOD_BUFFE
28b0: 52 45 44 2c 20 46 49 4c 45 5f 41 4e 59 5f 41 43 RED, FILE_ANY_AC
28c0: 43 45 53 53 29 2c 0d 0a 09 46 53 43 54 4c 5f 44 CESS),...FSCTL_D
28d0: 49 53 4d 4f 55 4e 54 5f 56 4f 4c 55 4d 45 20 20 ISMOUNT_VOLUME
28e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 =
28f0: 43 54 4c 5f 43 4f 44 45 5f 54 21 28 46 49 4c 45 CTL_CODE_T!(FILE
2900: 5f 44 45 56 49 43 45 5f 46 49 4c 45 5f 53 59 53 _DEVICE_FILE_SYS
2910: 54 45 4d 2c 20 38 2c 20 4d 45 54 48 4f 44 5f 42 TEM, 8, METHOD_B
2920: 55 46 46 45 52 45 44 2c 20 46 49 4c 45 5f 41 4e UFFERED, FILE_AN
2930: 59 5f 41 43 43 45 53 53 29 2c 0d 0a 09 46 53 43 Y_ACCESS),...FSC
2940: 54 4c 5f 4d 4f 55 4e 54 5f 44 42 4c 53 5f 56 4f TL_MOUNT_DBLS_VO
2950: 4c 55 4d 45 20 20 20 20 20 20 20 20 20 20 20 20 LUME
2960: 20 20 3d 20 43 54 4c 5f 43 4f 44 45 5f 54 21 28 = CTL_CODE_T!(
2970: 46 49 4c 45 5f 44 45 56 49 43 45 5f 46 49 4c 45 FILE_DEVICE_FILE
2980: 5f 53 59 53 54 45 4d 2c 20 31 33 2c 20 4d 45 54 _SYSTEM, 13, MET
2990: 48 4f 44 5f 42 55 46 46 45 52 45 44 2c 20 46 49 HOD_BUFFERED, FI
29a0: 4c 45 5f 41 4e 59 5f 41 43 43 45 53 53 29 2c 0d LE_ANY_ACCESS),.
29b0: 0a 09 46 53 43 54 4c 5f 47 45 54 5f 43 4f 4d 50 ..FSCTL_GET_COMP
29c0: 52 45 53 53 49 4f 4e 20 20 20 20 20 20 20 20 20 RESSION
29d0: 20 20 20 20 20 20 20 3d 20 43 54 4c 5f 43 4f 44 = CTL_COD
29e0: 45 5f 54 21 28 46 49 4c 45 5f 44 45 56 49 43 45 E_T!(FILE_DEVICE
29f0: 5f 46 49 4c 45 5f 53 59 53 54 45 4d 2c 20 31 35 _FILE_SYSTEM, 15
2a00: 2c 20 4d 45 54 48 4f 44 5f 42 55 46 46 45 52 45 , METHOD_BUFFERE
2a10: 44 2c 20 46 49 4c 45 5f 41 4e 59 5f 41 43 43 45 D, FILE_ANY_ACCE
2a20: 53 53 29 2c 0d 0a 09 46 53 43 54 4c 5f 53 45 54 SS),...FSCTL_SET
2a30: 5f 43 4f 4d 50 52 45 53 53 49 4f 4e 20 20 20 20 _COMPRESSION
2a40: 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 43 54 = CT
2a50: 4c 5f 43 4f 44 45 5f 54 21 28 46 49 4c 45 5f 44 L_CODE_T!(FILE_D
2a60: 45 56 49 43 45 5f 46 49 4c 45 5f 53 59 53 54 45 EVICE_FILE_SYSTE
2a70: 4d 2c 20 31 36 2c 20 4d 45 54 48 4f 44 5f 42 55 M, 16, METHOD_BU
2a80: 46 46 45 52 45 44 2c 20 46 49 4c 45 5f 52 45 41 FFERED, FILE_REA
2a90: 44 5f 44 41 54 41 7c 46 49 4c 45 5f 57 52 49 54 D_DATA|FILE_WRIT
2aa0: 45 5f 44 41 54 41 29 2c 0d 0a 09 46 53 43 54 4c E_DATA),...FSCTL
2ab0: 5f 52 45 41 44 5f 43 4f 4d 50 52 45 53 53 49 4f _READ_COMPRESSIO
2ac0: 4e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 N
2ad0: 3d 20 43 54 4c 5f 43 4f 44 45 5f 54 21 28 46 49 = CTL_CODE_T!(FI
2ae0: 4c 45 5f 44 45 56 49 43 45 5f 46 49 4c 45 5f 53 LE_DEVICE_FILE_S
2af0: 59 53 54 45 4d 2c 20 31 37 2c 20 4d 45 54 48 4f YSTEM, 17, METHO
2b00: 44 5f 4e 45 49 54 48 45 52 2c 20 46 49 4c 45 5f D_NEITHER, FILE_
2b10: 52 45 41 44 5f 44 41 54 41 29 2c 0d 0a 09 46 53 READ_DATA),...FS
2b20: 43 54 4c 5f 57 52 49 54 45 5f 43 4f 4d 50 52 45 CTL_WRITE_COMPRE
2b30: 53 53 49 4f 4e 20 20 20 20 20 20 20 20 20 20 20 SSION
2b40: 20 20 20 3d 20 43 54 4c 5f 43 4f 44 45 5f 54 21 = CTL_CODE_T!
2b50: 28 46 49 4c 45 5f 44 45 56 49 43 45 5f 46 49 4c (FILE_DEVICE_FIL
2b60: 45 5f 53 59 53 54 45 4d 2c 20 31 38 2c 20 4d 45 E_SYSTEM, 18, ME
2b70: 54 48 4f 44 5f 4e 45 49 54 48 45 52 2c 20 46 49 THOD_NEITHER, FI
2b80: 4c 45 5f 57 52 49 54 45 5f 44 41 54 41 29 2c 0d LE_WRITE_DATA),.
2b90: 0a 09 46 53 43 54 4c 5f 47 45 54 5f 4e 54 46 53 ..FSCTL_GET_NTFS
2ba0: 5f 56 4f 4c 55 4d 45 5f 44 41 54 41 20 20 20 20 _VOLUME_DATA
2bb0: 20 20 20 20 20 20 20 3d 20 43 54 4c 5f 43 4f 44 = CTL_COD
2bc0: 45 5f 54 21 28 46 49 4c 45 5f 44 45 56 49 43 45 E_T!(FILE_DEVICE
2bd0: 5f 46 49 4c 45 5f 53 59 53 54 45 4d 2c 20 32 35 _FILE_SYSTEM, 25
2be0: 2c 20 4d 45 54 48 4f 44 5f 42 55 46 46 45 52 45 , METHOD_BUFFERE
2bf0: 44 2c 20 46 49 4c 45 5f 41 4e 59 5f 41 43 43 45 D, FILE_ANY_ACCE
2c00: 53 53 29 2c 0d 0a 09 46 53 43 54 4c 5f 47 45 54 SS),...FSCTL_GET
2c10: 5f 56 4f 4c 55 4d 45 5f 42 49 54 4d 41 50 20 20 _VOLUME_BITMAP
2c20: 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 43 54 = CT
2c30: 4c 5f 43 4f 44 45 5f 54 21 28 46 49 4c 45 5f 44 L_CODE_T!(FILE_D
2c40: 45 56 49 43 45 5f 46 49 4c 45 5f 53 59 53 54 45 EVICE_FILE_SYSTE
2c50: 4d 2c 20 32 37 2c 20 4d 45 54 48 4f 44 5f 4e 45 M, 27, METHOD_NE
2c60: 49 54 48 45 52 2c 20 46 49 4c 45 5f 41 4e 59 5f ITHER, FILE_ANY_
2c70: 41 43 43 45 53 53 29 2c 0d 0a 09 46 53 43 54 4c ACCESS),...FSCTL
2c80: 5f 47 45 54 5f 52 45 54 52 49 45 56 41 4c 5f 50 _GET_RETRIEVAL_P
2c90: 4f 49 4e 54 45 52 53 20 20 20 20 20 20 20 20 20 OINTERS
2ca0: 3d 20 43 54 4c 5f 43 4f 44 45 5f 54 21 28 46 49 = CTL_CODE_T!(FI
2cb0: 4c 45 5f 44 45 56 49 43 45 5f 46 49 4c 45 5f 53 LE_DEVICE_FILE_S
2cc0: 59 53 54 45 4d 2c 20 32 38 2c 20 4d 45 54 48 4f YSTEM, 28, METHO
2cd0: 44 5f 4e 45 49 54 48 45 52 2c 20 46 49 4c 45 5f D_NEITHER, FILE_
2ce0: 41 4e 59 5f 41 43 43 45 53 53 29 2c 0d 0a 09 46 ANY_ACCESS),...F
2cf0: 53 43 54 4c 5f 4d 4f 56 45 5f 46 49 4c 45 20 20 SCTL_MOVE_FILE
2d00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2d10: 20 20 20 20 3d 20 43 54 4c 5f 43 4f 44 45 5f 54 = CTL_CODE_T
2d20: 21 28 46 49 4c 45 5f 44 45 56 49 43 45 5f 46 49 !(FILE_DEVICE_FI
2d30: 4c 45 5f 53 59 53 54 45 4d 2c 20 32 39 2c 20 4d LE_SYSTEM, 29, M
2d40: 45 54 48 4f 44 5f 42 55 46 46 45 52 45 44 2c 20 ETHOD_BUFFERED,
2d50: 46 49 4c 45 5f 41 4e 59 5f 41 43 43 45 53 53 29 FILE_ANY_ACCESS)
2d60: 2c 0d 0a 09 46 53 43 54 4c 5f 47 45 54 5f 52 45 ,...FSCTL_GET_RE
2d70: 50 41 52 53 45 5f 50 4f 49 4e 54 20 20 20 20 20 PARSE_POINT
2d80: 20 20 20 20 20 20 20 20 20 3d 20 43 54 4c 5f 43 = CTL_C
2d90: 4f 44 45 5f 54 21 28 46 49 4c 45 5f 44 45 56 49 ODE_T!(FILE_DEVI
2da0: 43 45 5f 46 49 4c 45 5f 53 59 53 54 45 4d 2c 20 CE_FILE_SYSTEM,
2db0: 34 32 2c 20 4d 45 54 48 4f 44 5f 42 55 46 46 45 42, METHOD_BUFFE
2dc0: 52 45 44 2c 20 46 49 4c 45 5f 41 4e 59 5f 41 43 RED, FILE_ANY_AC
2dd0: 43 45 53 53 29 2c 0d 0a 09 46 53 43 54 4c 5f 53 CESS),...FSCTL_S
2de0: 45 54 5f 52 45 50 41 52 53 45 5f 50 4f 49 4e 54 ET_REPARSE_POINT
2df0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 =
2e00: 43 54 4c 5f 43 4f 44 45 5f 54 21 28 46 49 4c 45 CTL_CODE_T!(FILE
2e10: 5f 44 45 56 49 43 45 5f 46 49 4c 45 5f 53 59 53 _DEVICE_FILE_SYS
2e20: 54 45 4d 2c 20 34 31 2c 20 4d 45 54 48 4f 44 5f TEM, 41, METHOD_
2e30: 42 55 46 46 45 52 45 44 2c 20 46 49 4c 45 5f 41 BUFFERED, FILE_A
2e40: 4e 59 5f 41 43 43 45 53 53 29 2c 0d 0a 09 46 53 NY_ACCESS),...FS
2e50: 43 54 4c 5f 44 45 4c 45 54 45 5f 52 45 50 41 52 CTL_DELETE_REPAR
2e60: 53 45 5f 50 4f 49 4e 54 20 20 20 20 20 20 20 20 SE_POINT
2e70: 20 20 20 3d 20 43 54 4c 5f 43 4f 44 45 5f 54 21 = CTL_CODE_T!
2e80: 28 46 49 4c 45 5f 44 45 56 49 43 45 5f 46 49 4c (FILE_DEVICE_FIL
2e90: 45 5f 53 59 53 54 45 4d 2c 20 34 33 2c 20 4d 45 E_SYSTEM, 43, ME
2ea0: 54 48 4f 44 5f 42 55 46 46 45 52 45 44 2c 20 46 THOD_BUFFERED, F
2eb0: 49 4c 45 5f 41 4e 59 5f 41 43 43 45 53 53 29 2c ILE_ANY_ACCESS),
2ec0: 0d 0a 09 46 53 43 54 4c 5f 53 45 54 5f 53 50 41 ...FSCTL_SET_SPA
2ed0: 52 53 45 20 20 20 20 20 20 20 20 20 20 20 20 20 RSE
2ee0: 20 20 20 20 20 20 20 20 3d 20 43 54 4c 5f 43 4f = CTL_CO
2ef0: 44 45 5f 54 21 28 46 49 4c 45 5f 44 45 56 49 43 DE_T!(FILE_DEVIC
2f00: 45 5f 46 49 4c 45 5f 53 59 53 54 45 4d 2c 20 34 E_FILE_SYSTEM, 4
2f10: 39 2c 20 4d 45 54 48 4f 44 5f 42 55 46 46 45 52 9, METHOD_BUFFER
2f20: 45 44 2c 20 46 49 4c 45 5f 53 50 45 43 49 41 4c ED, FILE_SPECIAL
2f30: 5f 41 43 43 45 53 53 29 2c 0d 0a 7d 0d 0a 0d 0a _ACCESS),..}....
2f40: 65 6e 75 6d 20 3a 20 42 59 54 45 20 7b 0d 0a 09 enum : BYTE {...
2f50: 50 41 52 54 49 54 49 4f 4e 5f 45 4e 54 52 59 5f PARTITION_ENTRY_
2f60: 55 4e 55 53 45 44 2c 0d 0a 09 50 41 52 54 49 54 UNUSED,...PARTIT
2f70: 49 4f 4e 5f 46 41 54 5f 31 32 2c 0d 0a 09 50 41 ION_FAT_12,...PA
2f80: 52 54 49 54 49 4f 4e 5f 58 45 4e 49 58 5f 31 2c RTITION_XENIX_1,
2f90: 0d 0a 09 50 41 52 54 49 54 49 4f 4e 5f 58 45 4e ...PARTITION_XEN
2fa0: 49 58 5f 32 2c 0d 0a 09 50 41 52 54 49 54 49 4f IX_2,...PARTITIO
2fb0: 4e 5f 46 41 54 5f 31 36 2c 0d 0a 09 50 41 52 54 N_FAT_16,...PART
2fc0: 49 54 49 4f 4e 5f 45 58 54 45 4e 44 45 44 2c 0d ITION_EXTENDED,.
2fd0: 0a 09 50 41 52 54 49 54 49 4f 4e 5f 48 55 47 45 ..PARTITION_HUGE
2fe0: 2c 0d 0a 09 50 41 52 54 49 54 49 4f 4e 5f 49 46 ,...PARTITION_IF
2ff0: 53 2c 20 20 20 20 20 20 20 20 20 2f 2f 20 3d 20 S, // =
3000: 30 78 30 37 0d 0a 09 50 41 52 54 49 54 49 4f 4e 0x07...PARTITION
3010: 5f 46 41 54 33 32 20 20 20 20 20 20 20 20 20 20 _FAT32
3020: 20 3d 20 30 78 30 42 2c 0d 0a 09 50 41 52 54 49 = 0x0B,...PARTI
3030: 54 49 4f 4e 5f 46 41 54 33 32 5f 58 49 4e 54 31 TION_FAT32_XINT1
3040: 33 20 20 20 20 3d 20 30 78 30 43 2c 0d 0a 09 50 3 = 0x0C,...P
3050: 41 52 54 49 54 49 4f 4e 5f 58 49 4e 54 31 33 20 ARTITION_XINT13
3060: 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 45 2c = 0x0E,
3070: 0d 0a 09 50 41 52 54 49 54 49 4f 4e 5f 58 49 4e ...PARTITION_XIN
3080: 54 31 33 5f 45 58 54 45 4e 44 45 44 20 3d 20 30 T13_EXTENDED = 0
3090: 78 30 46 2c 0d 0a 09 50 41 52 54 49 54 49 4f 4e x0F,...PARTITION
30a0: 5f 50 52 45 50 20 20 20 20 20 20 20 20 20 20 20 _PREP
30b0: 20 3d 20 30 78 34 31 2c 0d 0a 09 50 41 52 54 49 = 0x41,...PARTI
30c0: 54 49 4f 4e 5f 4c 44 4d 20 20 20 20 20 20 20 20 TION_LDM
30d0: 20 20 20 20 20 3d 20 30 78 34 32 2c 0d 0a 09 50 = 0x42,...P
30e0: 41 52 54 49 54 49 4f 4e 5f 55 4e 49 58 20 20 20 ARTITION_UNIX
30f0: 20 20 20 20 20 20 20 20 20 3d 20 30 78 36 33 0d = 0x63.
3100: 0a 7d 0d 0a 0d 0a 63 6f 6e 73 74 20 42 59 54 45 .}....const BYTE
3110: 0d 0a 09 50 41 52 54 49 54 49 4f 4e 5f 4e 54 46 ...PARTITION_NTF
3120: 54 20 3d 20 30 78 38 30 2c 0d 0a 09 56 41 4c 49 T = 0x80,...VALI
3130: 44 5f 4e 54 46 54 20 20 20 20 20 3d 20 30 78 43 D_NTFT = 0xC
3140: 30 3b 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 53 0;....enum {...S
3150: 45 52 49 41 4c 5f 4c 53 52 4d 53 54 5f 45 53 43 ERIAL_LSRMST_ESC
3160: 41 50 45 2c 0d 0a 09 53 45 52 49 41 4c 5f 4c 53 APE,...SERIAL_LS
3170: 52 4d 53 54 5f 4c 53 52 5f 44 41 54 41 2c 0d 0a RMST_LSR_DATA,..
3180: 09 53 45 52 49 41 4c 5f 4c 53 52 4d 53 54 5f 4c .SERIAL_LSRMST_L
3190: 53 52 5f 4e 4f 44 41 54 41 2c 0d 0a 09 53 45 52 SR_NODATA,...SER
31a0: 49 41 4c 5f 4c 53 52 4d 53 54 5f 4d 53 54 0d 0a IAL_LSRMST_MST..
31b0: 7d 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 44 49 }....enum {...DI
31c0: 53 4b 5f 4c 4f 47 47 49 4e 47 5f 53 54 41 52 54 SK_LOGGING_START
31d0: 2c 0d 0a 09 44 49 53 4b 5f 4c 4f 47 47 49 4e 47 ,...DISK_LOGGING
31e0: 5f 53 54 4f 50 2c 0d 0a 09 44 49 53 4b 5f 4c 4f _STOP,...DISK_LO
31f0: 47 47 49 4e 47 5f 44 55 4d 50 2c 0d 0a 09 44 49 GGING_DUMP,...DI
3200: 53 4b 5f 42 49 4e 4e 49 4e 47 0d 0a 7d 0d 0a 0d SK_BINNING..}...
3210: 0a 61 6c 69 61 73 20 57 4f 52 44 20 42 41 44 5f .alias WORD BAD_
3220: 54 52 41 43 4b 5f 4e 55 4d 42 45 52 3b 0d 0a 61 TRACK_NUMBER;..a
3230: 6c 69 61 73 20 57 4f 52 44 2a 20 50 42 41 44 5f lias WORD* PBAD_
3240: 54 52 41 43 4b 5f 4e 55 4d 42 45 52 3b 0d 0a 0d TRACK_NUMBER;...
3250: 0a 65 6e 75 6d 20 42 49 4e 5f 54 59 50 45 53 20 .enum BIN_TYPES
3260: 7b 0d 0a 09 52 65 71 75 65 73 74 53 69 7a 65 2c {...RequestSize,
3270: 20 52 65 71 75 65 73 74 4c 6f 63 61 74 69 6f 6e RequestLocation
3280: 0d 0a 7d 0d 0a 0d 0a 73 74 72 75 63 74 20 42 49 ..}....struct BI
3290: 4e 5f 52 41 4e 47 45 20 7b 0d 0a 09 4c 41 52 47 N_RANGE {...LARG
32a0: 45 5f 49 4e 54 45 47 45 52 20 53 74 61 72 74 56 E_INTEGER StartV
32b0: 61 6c 75 65 3b 0d 0a 09 4c 41 52 47 45 5f 49 4e alue;...LARGE_IN
32c0: 54 45 47 45 52 20 4c 65 6e 67 74 68 3b 0d 0a 7d TEGER Length;..}
32d0: 0d 0a 61 6c 69 61 73 20 42 49 4e 5f 52 41 4e 47 ..alias BIN_RANG
32e0: 45 2a 20 50 42 49 4e 5f 52 41 4e 47 45 3b 0d 0a E* PBIN_RANGE;..
32f0: 0d 0a 73 74 72 75 63 74 20 42 49 4e 5f 43 4f 55 ..struct BIN_COU
3300: 4e 54 20 7b 0d 0a 09 42 49 4e 5f 52 41 4e 47 45 NT {...BIN_RANGE
3310: 20 42 69 6e 52 61 6e 67 65 3b 0d 0a 09 44 57 4f BinRange;...DWO
3320: 52 44 20 20 20 20 20 42 69 6e 43 6f 75 6e 74 3b RD BinCount;
3330: 0d 0a 7d 0d 0a 61 6c 69 61 73 20 42 49 4e 5f 43 ..}..alias BIN_C
3340: 4f 55 4e 54 2a 20 50 42 49 4e 5f 43 4f 55 4e 54 OUNT* PBIN_COUNT
3350: 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 42 49 4e 5f ;....struct BIN_
3360: 52 45 53 55 4c 54 53 20 7b 0d 0a 09 44 57 4f 52 RESULTS {...DWOR
3370: 44 20 20 20 20 20 4e 75 6d 62 65 72 4f 66 42 69 D NumberOfBi
3380: 6e 73 3b 0d 0a 09 42 49 4e 5f 43 4f 55 4e 54 20 ns;...BIN_COUNT
3390: 5f 42 69 6e 43 6f 75 6e 74 73 3b 0d 0a 0d 0a 09 _BinCounts;.....
33a0: 42 49 4e 5f 43 4f 55 4e 54 2a 20 42 69 6e 43 6f BIN_COUNT* BinCo
33b0: 75 6e 74 73 28 29 20 7b 20 72 65 74 75 72 6e 20 unts() { return
33c0: 26 5f 42 69 6e 43 6f 75 6e 74 73 3b 20 7d 0d 0a &_BinCounts; }..
33d0: 7d 0d 0a 61 6c 69 61 73 20 42 49 4e 5f 52 45 53 }..alias BIN_RES
33e0: 55 4c 54 53 2a 20 50 42 49 4e 5f 52 45 53 55 4c ULTS* PBIN_RESUL
33f0: 54 53 3b 0d 0a 0d 0a 65 6e 75 6d 20 50 41 52 54 TS;....enum PART
3400: 49 54 49 4f 4e 5f 53 54 59 4c 45 20 7b 0d 0a 09 ITION_STYLE {...
3410: 50 41 52 54 49 54 49 4f 4e 5f 53 54 59 4c 45 5f PARTITION_STYLE_
3420: 4d 42 52 2c 0d 0a 09 50 41 52 54 49 54 49 4f 4e MBR,...PARTITION
3430: 5f 53 54 59 4c 45 5f 47 50 54 2c 0d 0a 09 50 41 _STYLE_GPT,...PA
3440: 52 54 49 54 49 4f 4e 5f 53 54 59 4c 45 5f 52 41 RTITION_STYLE_RA
3450: 57 0d 0a 7d 0d 0a 0d 0a 73 74 72 75 63 74 20 43 W..}....struct C
3460: 52 45 41 54 45 5f 44 49 53 4b 5f 47 50 54 20 7b REATE_DISK_GPT {
3470: 0d 0a 09 47 55 49 44 20 20 44 69 73 6b 49 64 3b ...GUID DiskId;
3480: 0d 0a 09 44 57 4f 52 44 20 4d 61 78 50 61 72 74 ...DWORD MaxPart
3490: 69 74 69 6f 6e 43 6f 75 6e 74 3b 0d 0a 7d 0d 0a itionCount;..}..
34a0: 61 6c 69 61 73 20 43 52 45 41 54 45 5f 44 49 53 alias CREATE_DIS
34b0: 4b 5f 47 50 54 2a 20 50 43 52 45 41 54 45 5f 44 K_GPT* PCREATE_D
34c0: 49 53 4b 5f 47 50 54 3b 0d 0a 0d 0a 73 74 72 75 ISK_GPT;....stru
34d0: 63 74 20 43 52 45 41 54 45 5f 44 49 53 4b 5f 4d ct CREATE_DISK_M
34e0: 42 52 20 7b 0d 0a 09 44 57 4f 52 44 20 53 69 67 BR {...DWORD Sig
34f0: 6e 61 74 75 72 65 3b 0d 0a 7d 0d 0a 61 6c 69 61 nature;..}..alia
3500: 73 20 43 52 45 41 54 45 5f 44 49 53 4b 5f 4d 42 s CREATE_DISK_MB
3510: 52 2a 20 50 43 52 45 41 54 45 5f 44 49 53 4b 5f R* PCREATE_DISK_
3520: 4d 42 52 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 43 MBR;....struct C
3530: 52 45 41 54 45 5f 44 49 53 4b 20 7b 0d 0a 09 50 REATE_DISK {...P
3540: 41 52 54 49 54 49 4f 4e 5f 53 54 59 4c 45 20 50 ARTITION_STYLE P
3550: 61 72 74 69 74 69 6f 6e 53 74 79 6c 65 3b 0d 0a artitionStyle;..
3560: 09 75 6e 69 6f 6e 20 7b 0d 0a 09 09 43 52 45 41 .union {....CREA
3570: 54 45 5f 44 49 53 4b 5f 4d 42 52 20 4d 62 72 3b TE_DISK_MBR Mbr;
3580: 0d 0a 09 09 43 52 45 41 54 45 5f 44 49 53 4b 5f ....CREATE_DISK_
3590: 47 50 54 20 47 70 74 3b 0d 0a 09 7d 0d 0a 7d 0d GPT Gpt;...}..}.
35a0: 0a 61 6c 69 61 73 20 43 52 45 41 54 45 5f 44 49 .alias CREATE_DI
35b0: 53 4b 2a 20 50 43 52 45 41 54 45 5f 44 49 53 4b SK* PCREATE_DISK
35c0: 3b 0d 0a 0d 0a 65 6e 75 6d 20 44 49 53 4b 5f 43 ;....enum DISK_C
35d0: 41 43 48 45 5f 52 45 54 45 4e 54 49 4f 4e 5f 50 ACHE_RETENTION_P
35e0: 52 49 4f 52 49 54 59 20 7b 0d 0a 09 45 71 75 61 RIORITY {...Equa
35f0: 6c 50 72 69 6f 72 69 74 79 2c 0d 0a 09 4b 65 65 lPriority,...Kee
3600: 70 50 72 65 66 65 74 63 68 65 64 44 61 74 61 2c pPrefetchedData,
3610: 0d 0a 09 4b 65 65 70 52 65 61 64 44 61 74 61 0d ...KeepReadData.
3620: 0a 7d 0d 0a 0d 0a 73 74 72 75 63 74 20 44 49 53 .}....struct DIS
3630: 4b 5f 43 41 43 48 45 5f 49 4e 46 4f 52 4d 41 54 K_CACHE_INFORMAT
3640: 49 4f 4e 20 7b 0d 0a 09 42 4f 4f 4c 45 41 4e 20 ION {...BOOLEAN
3650: 50 61 72 61 6d 65 74 65 72 73 53 61 76 61 62 6c ParametersSavabl
3660: 65 3b 0d 0a 09 42 4f 4f 4c 45 41 4e 20 52 65 61 e;...BOOLEAN Rea
3670: 64 43 61 63 68 65 45 6e 61 62 6c 65 64 3b 0d 0a dCacheEnabled;..
3680: 09 42 4f 4f 4c 45 41 4e 20 57 72 69 74 65 43 61 .BOOLEAN WriteCa
3690: 63 68 65 45 6e 61 62 6c 65 64 3b 0d 0a 09 44 49 cheEnabled;...DI
36a0: 53 4b 5f 43 41 43 48 45 5f 52 45 54 45 4e 54 49 SK_CACHE_RETENTI
36b0: 4f 4e 5f 50 52 49 4f 52 49 54 59 20 52 65 61 64 ON_PRIORITY Read
36c0: 52 65 74 65 6e 74 69 6f 6e 50 72 69 6f 72 69 74 RetentionPriorit
36d0: 79 3b 0d 0a 09 44 49 53 4b 5f 43 41 43 48 45 5f y;...DISK_CACHE_
36e0: 52 45 54 45 4e 54 49 4f 4e 5f 50 52 49 4f 52 49 RETENTION_PRIORI
36f0: 54 59 20 57 72 69 74 65 52 65 74 65 6e 74 69 6f TY WriteRetentio
3700: 6e 50 72 69 6f 72 69 74 79 3b 0d 0a 09 57 4f 52 nPriority;...WOR
3710: 44 20 20 20 20 44 69 73 61 62 6c 65 50 72 65 66 D DisablePref
3720: 65 74 63 68 54 72 61 6e 73 66 65 72 4c 65 6e 67 etchTransferLeng
3730: 74 68 3b 0d 0a 09 42 4f 4f 4c 45 41 4e 20 50 72 th;...BOOLEAN Pr
3740: 65 66 65 74 63 68 53 63 61 6c 61 72 3b 0d 0a 09 efetchScalar;...
3750: 75 6e 69 6f 6e 20 7b 0d 0a 09 09 73 74 72 75 63 union {....struc
3760: 74 20 5f 53 63 61 6c 61 72 50 72 65 66 65 74 63 t _ScalarPrefetc
3770: 68 20 7b 0d 0a 09 09 09 57 4f 52 44 20 4d 69 6e h {.....WORD Min
3780: 69 6d 75 6d 3b 0d 0a 09 09 09 57 4f 52 44 20 4d imum;.....WORD M
3790: 61 78 69 6d 75 6d 3b 0d 0a 09 09 09 57 4f 52 44 aximum;.....WORD
37a0: 20 4d 61 78 69 6d 75 6d 42 6c 6f 63 6b 73 3b 0d MaximumBlocks;.
37b0: 0a 09 09 7d 0d 0a 09 09 5f 53 63 61 6c 61 72 50 ...}...._ScalarP
37c0: 72 65 66 65 74 63 68 20 53 63 61 6c 61 72 50 72 refetch ScalarPr
37d0: 65 66 65 74 63 68 3b 0d 0a 09 09 73 74 72 75 63 efetch;....struc
37e0: 74 20 5f 42 6c 6f 63 6b 50 72 65 66 65 74 63 68 t _BlockPrefetch
37f0: 20 7b 0d 0a 09 09 09 57 4f 52 44 20 4d 69 6e 69 {.....WORD Mini
3800: 6d 75 6d 3b 0d 0a 09 09 09 57 4f 52 44 20 4d 61 mum;.....WORD Ma
3810: 78 69 6d 75 6d 3b 0d 0a 09 09 7d 0d 0a 09 09 5f ximum;....}...._
3820: 42 6c 6f 63 6b 50 72 65 66 65 74 63 68 20 42 6c BlockPrefetch Bl
3830: 6f 63 6b 50 72 65 66 65 74 63 68 3b 0d 0a 09 7d ockPrefetch;...}
3840: 0d 0a 7d 0d 0a 61 6c 69 61 73 20 44 49 53 4b 5f ..}..alias DISK_
3850: 43 41 43 48 45 5f 49 4e 46 4f 52 4d 41 54 49 4f CACHE_INFORMATIO
3860: 4e 2a 20 50 44 49 53 4b 5f 43 41 43 48 45 5f 49 N* PDISK_CACHE_I
3870: 4e 46 4f 52 4d 41 54 49 4f 4e 3b 0d 0a 0d 0a 65 NFORMATION;....e
3880: 6e 75 6d 20 44 45 54 45 43 54 49 4f 4e 5f 54 59 num DETECTION_TY
3890: 50 45 20 7b 0d 0a 09 44 65 74 65 63 74 4e 6f 6e PE {...DetectNon
38a0: 65 2c 0d 0a 09 44 65 74 65 63 74 49 6e 74 31 33 e,...DetectInt13
38b0: 2c 0d 0a 09 44 65 74 65 63 74 45 78 49 6e 74 31 ,...DetectExInt1
38c0: 33 0d 0a 7d 0d 0a 0d 0a 73 74 72 75 63 74 20 44 3..}....struct D
38d0: 49 53 4b 5f 49 4e 54 31 33 5f 49 4e 46 4f 20 7b ISK_INT13_INFO {
38e0: 0d 0a 09 57 4f 52 44 20 20 44 72 69 76 65 53 65 ...WORD DriveSe
38f0: 6c 65 63 74 3b 0d 0a 09 44 57 4f 52 44 20 4d 61 lect;...DWORD Ma
3900: 78 43 79 6c 69 6e 64 65 72 73 3b 0d 0a 09 57 4f xCylinders;...WO
3910: 52 44 20 20 53 65 63 74 6f 72 73 50 65 72 54 72 RD SectorsPerTr
3920: 61 63 6b 3b 0d 0a 09 57 4f 52 44 20 20 4d 61 78 ack;...WORD Max
3930: 48 65 61 64 73 3b 0d 0a 09 57 4f 52 44 20 20 4e Heads;...WORD N
3940: 75 6d 62 65 72 44 72 69 76 65 73 3b 0d 0a 09 7d umberDrives;...}
3950: 0d 0a 61 6c 69 61 73 20 44 49 53 4b 5f 49 4e 54 ..alias DISK_INT
3960: 31 33 5f 49 4e 46 4f 2a 20 50 44 49 53 4b 5f 49 13_INFO* PDISK_I
3970: 4e 54 31 33 5f 49 4e 46 4f 3b 0d 0a 0d 0a 73 74 NT13_INFO;....st
3980: 72 75 63 74 20 44 49 53 4b 5f 45 58 5f 49 4e 54 ruct DISK_EX_INT
3990: 31 33 5f 49 4e 46 4f 20 7b 0d 0a 09 57 4f 52 44 13_INFO {...WORD
39a0: 20 20 20 20 45 78 42 75 66 66 65 72 53 69 7a 65 ExBufferSize
39b0: 3b 0d 0a 09 57 4f 52 44 20 20 20 20 45 78 46 6c ;...WORD ExFl
39c0: 61 67 73 3b 0d 0a 09 44 57 4f 52 44 20 20 20 45 ags;...DWORD E
39d0: 78 43 79 6c 69 6e 64 65 72 73 3b 0d 0a 09 44 57 xCylinders;...DW
39e0: 4f 52 44 20 20 20 45 78 48 65 61 64 73 3b 0d 0a ORD ExHeads;..
39f0: 09 44 57 4f 52 44 20 20 20 45 78 53 65 63 74 6f .DWORD ExSecto
3a00: 72 73 50 65 72 54 72 61 63 6b 3b 0d 0a 09 44 57 rsPerTrack;...DW
3a10: 4f 52 44 36 34 20 45 78 53 65 63 74 6f 72 73 50 ORD64 ExSectorsP
3a20: 65 72 44 72 69 76 65 3b 0d 0a 09 57 4f 52 44 20 erDrive;...WORD
3a30: 20 20 20 45 78 53 65 63 74 6f 72 53 69 7a 65 3b ExSectorSize;
3a40: 0d 0a 09 57 4f 52 44 20 20 20 20 45 78 52 65 73 ...WORD ExRes
3a50: 65 72 76 65 64 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 erved;..}..alias
3a60: 20 44 49 53 4b 5f 45 58 5f 49 4e 54 31 33 5f 49 DISK_EX_INT13_I
3a70: 4e 46 4f 2a 20 50 44 49 53 4b 5f 45 58 5f 49 4e NFO* PDISK_EX_IN
3a80: 54 31 33 5f 49 4e 46 4f 3b 0d 0a 0d 0a 73 74 72 T13_INFO;....str
3a90: 75 63 74 20 44 49 53 4b 5f 44 45 54 45 43 54 49 uct DISK_DETECTI
3aa0: 4f 4e 5f 49 4e 46 4f 20 7b 0d 0a 09 44 57 4f 52 ON_INFO {...DWOR
3ab0: 44 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 D S
3ac0: 69 7a 65 4f 66 44 65 74 65 63 74 49 6e 66 6f 3b izeOfDetectInfo;
3ad0: 0d 0a 09 44 45 54 45 43 54 49 4f 4e 5f 54 59 50 ...DETECTION_TYP
3ae0: 45 20 20 20 20 20 44 65 74 65 63 74 69 6f 6e 54 E DetectionT
3af0: 79 70 65 3b 0d 0a 09 44 49 53 4b 5f 49 4e 54 31 ype;...DISK_INT1
3b00: 33 5f 49 4e 46 4f 20 20 20 20 49 6e 74 31 33 3b 3_INFO Int13;
3b10: 0d 0a 09 44 49 53 4b 5f 45 58 5f 49 4e 54 31 33 ...DISK_EX_INT13
3b20: 5f 49 4e 46 4f 20 45 78 49 6e 74 31 33 3b 0d 0a _INFO ExInt13;..
3b30: 7d 0d 0a 61 6c 69 61 73 20 44 49 53 4b 5f 44 45 }..alias DISK_DE
3b40: 54 45 43 54 49 4f 4e 5f 49 4e 46 4f 2a 20 50 44 TECTION_INFO* PD
3b50: 49 53 4b 5f 44 45 54 45 43 54 49 4f 4e 5f 49 4e ISK_DETECTION_IN
3b60: 46 4f 3b 0d 0a 0d 0a 65 6e 75 6d 20 4d 45 44 49 FO;....enum MEDI
3b70: 41 5f 54 59 50 45 20 7b 0d 0a 09 55 6e 6b 6e 6f A_TYPE {...Unkno
3b80: 77 6e 2c 0d 0a 09 46 35 5f 31 50 74 32 5f 35 31 wn,...F5_1Pt2_51
3b90: 32 2c 0d 0a 09 46 33 5f 31 50 74 34 34 5f 35 31 2,...F3_1Pt44_51
3ba0: 32 2c 0d 0a 09 46 33 5f 32 50 74 38 38 5f 35 31 2,...F3_2Pt88_51
3bb0: 32 2c 0d 0a 09 46 33 5f 32 30 50 74 38 5f 35 31 2,...F3_20Pt8_51
3bc0: 32 2c 0d 0a 09 46 33 5f 37 32 30 5f 35 31 32 2c 2,...F3_720_512,
3bd0: 0d 0a 09 46 35 5f 33 36 30 5f 35 31 32 2c 0d 0a ...F5_360_512,..
3be0: 09 46 35 5f 33 32 30 5f 35 31 32 2c 0d 0a 09 46 .F5_320_512,...F
3bf0: 35 5f 33 32 30 5f 31 30 32 34 2c 0d 0a 09 46 35 5_320_1024,...F5
3c00: 5f 31 38 30 5f 35 31 32 2c 0d 0a 09 46 35 5f 31 _180_512,...F5_1
3c10: 36 30 5f 35 31 32 2c 0d 0a 09 52 65 6d 6f 76 61 60_512,...Remova
3c20: 62 6c 65 4d 65 64 69 61 2c 0d 0a 09 46 69 78 65 bleMedia,...Fixe
3c30: 64 4d 65 64 69 61 2c 0d 0a 09 46 33 5f 31 32 30 dMedia,...F3_120
3c40: 4d 5f 35 31 32 2c 0d 0a 09 46 33 5f 36 34 30 5f M_512,...F3_640_
3c50: 35 31 32 2c 0d 0a 09 46 35 5f 36 34 30 5f 35 31 512,...F5_640_51
3c60: 32 2c 0d 0a 09 46 35 5f 37 32 30 5f 35 31 32 2c 2,...F5_720_512,
3c70: 0d 0a 09 46 33 5f 31 50 74 32 5f 35 31 32 2c 0d ...F3_1Pt2_512,.
3c80: 0a 09 46 33 5f 31 50 74 32 33 5f 31 30 32 34 2c ..F3_1Pt23_1024,
3c90: 0d 0a 09 46 35 5f 31 50 74 32 33 5f 31 30 32 34 ...F5_1Pt23_1024
3ca0: 2c 0d 0a 09 46 33 5f 31 32 38 4d 62 5f 35 31 32 ,...F3_128Mb_512
3cb0: 2c 0d 0a 09 46 33 5f 32 33 30 4d 62 5f 35 31 32 ,...F3_230Mb_512
3cc0: 2c 0d 0a 09 46 38 5f 32 35 36 5f 31 32 38 2c 0d ,...F8_256_128,.
3cd0: 0a 09 46 33 5f 32 30 30 4d 62 5f 35 31 32 2c 0d ..F3_200Mb_512,.
3ce0: 0a 09 46 33 5f 32 34 30 4d 5f 35 31 32 2c 0d 0a ..F3_240M_512,..
3cf0: 09 46 33 5f 33 32 4d 5f 35 31 32 0d 0a 7d 0d 0a .F3_32M_512..}..
3d00: 61 6c 69 61 73 20 4d 45 44 49 41 5f 54 59 50 45 alias MEDIA_TYPE
3d10: 2a 20 50 4d 45 44 49 41 5f 54 59 50 45 3b 0d 0a * PMEDIA_TYPE;..
3d20: 0d 0a 73 74 72 75 63 74 20 44 49 53 4b 5f 47 45 ..struct DISK_GE
3d30: 4f 4d 45 54 52 59 20 7b 0d 0a 09 4c 41 52 47 45 OMETRY {...LARGE
3d40: 5f 49 4e 54 45 47 45 52 20 43 79 6c 69 6e 64 65 _INTEGER Cylinde
3d50: 72 73 3b 0d 0a 09 4d 45 44 49 41 5f 54 59 50 45 rs;...MEDIA_TYPE
3d60: 20 20 20 20 4d 65 64 69 61 54 79 70 65 3b 0d 0a MediaType;..
3d70: 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 54 .DWORD T
3d80: 72 61 63 6b 73 50 65 72 43 79 6c 69 6e 64 65 72 racksPerCylinder
3d90: 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20 ;...DWORD
3da0: 20 20 53 65 63 74 6f 72 73 50 65 72 54 72 61 63 SectorsPerTrac
3db0: 6b 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 20 k;...DWORD
3dc0: 20 20 20 42 79 74 65 73 50 65 72 53 65 63 74 6f BytesPerSecto
3dd0: 72 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 44 49 53 r;..}..alias DIS
3de0: 4b 5f 47 45 4f 4d 45 54 52 59 2a 20 50 44 49 53 K_GEOMETRY* PDIS
3df0: 4b 5f 47 45 4f 4d 45 54 52 59 3b 0d 0a 0d 0a 73 K_GEOMETRY;....s
3e00: 74 72 75 63 74 20 44 49 53 4b 5f 47 45 4f 4d 45 truct DISK_GEOME
3e10: 54 52 59 5f 45 58 20 7b 0d 0a 09 44 49 53 4b 5f TRY_EX {...DISK_
3e20: 47 45 4f 4d 45 54 52 59 20 47 65 6f 6d 65 74 72 GEOMETRY Geometr
3e30: 79 3b 0d 0a 09 4c 41 52 47 45 5f 49 4e 54 45 47 y;...LARGE_INTEG
3e40: 45 52 20 44 69 73 6b 53 69 7a 65 3b 0d 0a 09 42 ER DiskSize;...B
3e50: 59 54 45 20 20 20 20 20 20 20 20 20 20 5f 44 61 YTE _Da
3e60: 74 61 3b 0d 0a 0d 0a 09 42 59 54 45 2a 20 44 61 ta;.....BYTE* Da
3e70: 74 61 28 29 20 7b 20 72 65 74 75 72 6e 20 26 5f ta() { return &_
3e80: 44 61 74 61 3b 20 7d 0d 0a 7d 0d 0a 61 6c 69 61 Data; }..}..alia
3e90: 73 20 44 49 53 4b 5f 47 45 4f 4d 45 54 52 59 5f s DISK_GEOMETRY_
3ea0: 45 58 2a 20 50 44 49 53 4b 5f 47 45 4f 4d 45 54 EX* PDISK_GEOMET
3eb0: 52 59 5f 45 58 3b 0d 0a 0d 0a 73 74 72 75 63 74 RY_EX;....struct
3ec0: 20 44 49 53 4b 5f 47 52 4f 57 5f 50 41 52 54 49 DISK_GROW_PARTI
3ed0: 54 49 4f 4e 20 7b 0d 0a 09 44 57 4f 52 44 20 20 TION {...DWORD
3ee0: 20 20 20 20 20 20 20 50 61 72 74 69 74 69 6f 6e Partition
3ef0: 4e 75 6d 62 65 72 3b 0d 0a 09 4c 41 52 47 45 5f Number;...LARGE_
3f00: 49 4e 54 45 47 45 52 20 42 79 74 65 73 54 6f 47 INTEGER BytesToG
3f10: 72 6f 77 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 44 row;..}..alias D
3f20: 49 53 4b 5f 47 52 4f 57 5f 50 41 52 54 49 54 49 ISK_GROW_PARTITI
3f30: 4f 4e 2a 20 50 44 49 53 4b 5f 47 52 4f 57 5f 50 ON* PDISK_GROW_P
3f40: 41 52 54 49 54 49 4f 4e 3b 0d 0a 0d 0a 73 74 72 ARTITION;....str
3f50: 75 63 74 20 44 49 53 4b 5f 50 41 52 54 49 54 49 uct DISK_PARTITI
3f60: 4f 4e 5f 49 4e 46 4f 20 7b 0d 0a 09 44 57 4f 52 ON_INFO {...DWOR
3f70: 44 20 20 20 20 20 20 20 20 20 20 20 53 69 7a 65 D Size
3f80: 4f 66 50 61 72 74 69 74 69 6f 6e 49 6e 66 6f 3b OfPartitionInfo;
3f90: 0d 0a 09 50 41 52 54 49 54 49 4f 4e 5f 53 54 59 ...PARTITION_STY
3fa0: 4c 45 20 50 61 72 74 69 74 69 6f 6e 53 74 79 6c LE PartitionStyl
3fb0: 65 3b 0d 0a 09 75 6e 69 6f 6e 20 7b 0d 0a 09 09 e;...union {....
3fc0: 2f 2f 73 74 72 75 63 74 20 7b 0d 0a 09 09 09 44 //struct {.....D
3fd0: 57 4f 52 44 20 53 69 67 6e 61 74 75 72 65 3b 0d WORD Signature;.
3fe0: 0a 09 09 2f 2f 7d 20 4d 62 72 3b 0d 0a 09 09 2f ...//} Mbr;..../
3ff0: 2f 73 74 72 75 63 74 20 7b 0d 0a 09 09 09 47 55 /struct {.....GU
4000: 49 44 20 44 69 73 6b 49 64 3b 0d 0a 09 09 2f 2f ID DiskId;....//
4010: 7d 20 47 70 74 3b 0d 0a 09 7d 0d 0a 7d 0d 0a 61 } Gpt;...}..}..a
4020: 6c 69 61 73 20 44 49 53 4b 5f 50 41 52 54 49 54 lias DISK_PARTIT
4030: 49 4f 4e 5f 49 4e 46 4f 2a 20 50 44 49 53 4b 5f ION_INFO* PDISK_
4040: 50 41 52 54 49 54 49 4f 4e 5f 49 4e 46 4f 3b 0d PARTITION_INFO;.
4050: 0a 0d 0a 73 74 72 75 63 74 20 44 49 53 4b 5f 50 ...struct DISK_P
4060: 45 52 46 4f 52 4d 41 4e 43 45 20 7b 0d 0a 09 4c ERFORMANCE {...L
4070: 41 52 47 45 5f 49 4e 54 45 47 45 52 20 42 79 74 ARGE_INTEGER Byt
4080: 65 73 52 65 61 64 3b 0d 0a 09 4c 41 52 47 45 5f esRead;...LARGE_
4090: 49 4e 54 45 47 45 52 20 42 79 74 65 73 57 72 69 INTEGER BytesWri
40a0: 74 74 65 6e 3b 0d 0a 09 4c 41 52 47 45 5f 49 4e tten;...LARGE_IN
40b0: 54 45 47 45 52 20 52 65 61 64 54 69 6d 65 3b 0d TEGER ReadTime;.
40c0: 0a 09 4c 41 52 47 45 5f 49 4e 54 45 47 45 52 20 ..LARGE_INTEGER
40d0: 57 72 69 74 65 54 69 6d 65 3b 0d 0a 09 44 57 4f WriteTime;...DWO
40e0: 52 44 20 20 20 20 20 20 20 20 20 52 65 61 64 43 RD ReadC
40f0: 6f 75 6e 74 3b 0d 0a 09 44 57 4f 52 44 20 20 20 ount;...DWORD
4100: 20 20 20 20 20 20 57 72 69 74 65 43 6f 75 6e 74 WriteCount
4110: 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20 ;...DWORD
4120: 20 20 51 75 65 75 65 44 65 70 74 68 3b 0d 0a 7d QueueDepth;..}
4130: 0d 0a 61 6c 69 61 73 20 44 49 53 4b 5f 50 45 52 ..alias DISK_PER
4140: 46 4f 52 4d 41 4e 43 45 2a 20 50 44 49 53 4b 5f FORMANCE* PDISK_
4150: 50 45 52 46 4f 52 4d 41 4e 43 45 3b 0d 0a 0d 0a PERFORMANCE;....
4160: 73 74 72 75 63 74 20 44 49 53 4b 5f 52 45 43 4f struct DISK_RECO
4170: 52 44 20 7b 0d 0a 09 4c 41 52 47 45 5f 49 4e 54 RD {...LARGE_INT
4180: 45 47 45 52 20 42 79 74 65 4f 66 66 73 65 74 3b EGER ByteOffset;
4190: 0d 0a 09 4c 41 52 47 45 5f 49 4e 54 45 47 45 52 ...LARGE_INTEGER
41a0: 20 53 74 61 72 74 54 69 6d 65 3b 0d 0a 09 4c 41 StartTime;...LA
41b0: 52 47 45 5f 49 4e 54 45 47 45 52 20 45 6e 64 54 RGE_INTEGER EndT
41c0: 69 6d 65 3b 0d 0a 09 50 56 4f 49 44 20 20 20 20 ime;...PVOID
41d0: 20 20 20 20 20 56 69 72 74 75 61 6c 41 64 64 72 VirtualAddr
41e0: 65 73 73 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20 ess;...DWORD
41f0: 20 20 20 20 20 4e 75 6d 62 65 72 4f 66 42 79 74 NumberOfByt
4200: 65 73 3b 0d 0a 09 42 59 54 45 20 20 20 20 20 20 es;...BYTE
4210: 20 20 20 20 44 65 76 69 63 65 4e 75 6d 62 65 72 DeviceNumber
4220: 3b 0d 0a 09 42 4f 4f 4c 45 41 4e 20 20 20 20 20 ;...BOOLEAN
4230: 20 20 52 65 61 64 52 65 71 75 65 73 74 3b 0d 0a ReadRequest;..
4240: 7d 0d 0a 61 6c 69 61 73 20 44 49 53 4b 5f 52 45 }..alias DISK_RE
4250: 43 4f 52 44 2a 20 50 44 49 53 4b 5f 52 45 43 4f CORD* PDISK_RECO
4260: 52 44 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 44 49 RD;....struct DI
4270: 53 4b 5f 4c 4f 47 47 49 4e 47 20 7b 0d 0a 09 42 SK_LOGGING {...B
4280: 59 54 45 20 20 46 75 6e 63 74 69 6f 6e 3b 0d 0a YTE Function;..
4290: 09 50 56 4f 49 44 20 42 75 66 66 65 72 41 64 64 .PVOID BufferAdd
42a0: 72 65 73 73 3b 0d 0a 09 44 57 4f 52 44 20 42 75 ress;...DWORD Bu
42b0: 66 66 65 72 53 69 7a 65 3b 0d 0a 7d 0d 0a 61 6c fferSize;..}..al
42c0: 69 61 73 20 44 49 53 4b 5f 4c 4f 47 47 49 4e 47 ias DISK_LOGGING
42d0: 2a 20 50 44 49 53 4b 5f 4c 4f 47 47 49 4e 47 3b * PDISK_LOGGING;
42e0: 0d 0a 0d 0a 73 74 72 75 63 74 20 44 49 53 4b 51 ....struct DISKQ
42f0: 55 4f 54 41 5f 55 53 45 52 5f 49 4e 46 4f 52 4d UOTA_USER_INFORM
4300: 41 54 49 4f 4e 20 7b 0d 0a 09 4c 4f 4e 47 4c 4f ATION {...LONGLO
4310: 4e 47 20 51 75 6f 74 61 55 73 65 64 3b 0d 0a 09 NG QuotaUsed;...
4320: 4c 4f 4e 47 4c 4f 4e 47 20 51 75 6f 74 61 54 68 LONGLONG QuotaTh
4330: 72 65 73 68 6f 6c 64 3b 0d 0a 09 4c 4f 4e 47 4c reshold;...LONGL
4340: 4f 4e 47 20 51 75 6f 74 61 4c 69 6d 69 74 3b 0d ONG QuotaLimit;.
4350: 0a 7d 0d 0a 61 6c 69 61 73 20 44 49 53 4b 51 55 .}..alias DISKQU
4360: 4f 54 41 5f 55 53 45 52 5f 49 4e 46 4f 52 4d 41 OTA_USER_INFORMA
4370: 54 49 4f 4e 2a 20 50 44 49 53 4b 51 55 4f 54 41 TION* PDISKQUOTA
4380: 5f 55 53 45 52 5f 49 4e 46 4f 52 4d 41 54 49 4f _USER_INFORMATIO
4390: 4e 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 46 4f 52 N;....struct FOR
43a0: 4d 41 54 5f 50 41 52 41 4d 45 54 45 52 53 20 7b MAT_PARAMETERS {
43b0: 0d 0a 09 4d 45 44 49 41 5f 54 59 50 45 20 4d 65 ...MEDIA_TYPE Me
43c0: 64 69 61 54 79 70 65 3b 0d 0a 09 44 57 4f 52 44 diaType;...DWORD
43d0: 20 20 20 20 20 20 53 74 61 72 74 43 79 6c 69 6e StartCylin
43e0: 64 65 72 4e 75 6d 62 65 72 3b 0d 0a 09 44 57 4f derNumber;...DWO
43f0: 52 44 20 20 20 20 20 20 45 6e 64 43 79 6c 69 6e RD EndCylin
4400: 64 65 72 4e 75 6d 62 65 72 3b 0d 0a 09 44 57 4f derNumber;...DWO
4410: 52 44 20 20 20 20 20 20 53 74 61 72 74 48 65 61 RD StartHea
4420: 64 4e 75 6d 62 65 72 3b 0d 0a 09 44 57 4f 52 44 dNumber;...DWORD
4430: 20 20 20 20 20 20 45 6e 64 48 65 61 64 4e 75 6d EndHeadNum
4440: 62 65 72 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 46 ber;..}..alias F
4450: 4f 52 4d 41 54 5f 50 41 52 41 4d 45 54 45 52 53 ORMAT_PARAMETERS
4460: 2a 20 50 46 4f 52 4d 41 54 5f 50 41 52 41 4d 45 * PFORMAT_PARAME
4470: 54 45 52 53 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 TERS;....struct
4480: 46 4f 52 4d 41 54 5f 45 58 5f 50 41 52 41 4d 45 FORMAT_EX_PARAME
4490: 54 45 52 53 20 7b 0d 0a 09 4d 45 44 49 41 5f 54 TERS {...MEDIA_T
44a0: 59 50 45 20 4d 65 64 69 61 54 79 70 65 3b 0d 0a YPE MediaType;..
44b0: 09 44 57 4f 52 44 20 20 20 20 20 20 53 74 61 72 .DWORD Star
44c0: 74 43 79 6c 69 6e 64 65 72 4e 75 6d 62 65 72 3b tCylinderNumber;
44d0: 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 20 45 6e ...DWORD En
44e0: 64 43 79 6c 69 6e 64 65 72 4e 75 6d 62 65 72 3b dCylinderNumber;
44f0: 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 20 53 74 ...DWORD St
4500: 61 72 74 48 65 61 64 4e 75 6d 62 65 72 3b 0d 0a artHeadNumber;..
4510: 09 44 57 4f 52 44 20 20 20 20 20 20 45 6e 64 48 .DWORD EndH
4520: 65 61 64 4e 75 6d 62 65 72 3b 0d 0a 09 57 4f 52 eadNumber;...WOR
4530: 44 20 20 20 20 20 20 20 46 6f 72 6d 61 74 47 61 D FormatGa
4540: 70 4c 65 6e 67 74 68 3b 0d 0a 09 57 4f 52 44 20 pLength;...WORD
4550: 20 20 20 20 20 20 53 65 63 74 6f 72 73 50 65 72 SectorsPer
4560: 54 72 61 63 6b 3b 0d 0a 09 57 4f 52 44 20 20 20 Track;...WORD
4570: 20 20 20 20 5f 53 65 63 74 6f 72 4e 75 6d 62 65 _SectorNumbe
4580: 72 3b 0d 0a 0d 0a 09 57 4f 52 44 2a 20 53 65 63 r;.....WORD* Sec
4590: 74 6f 72 4e 75 6d 62 65 72 28 29 20 7b 20 72 65 torNumber() { re
45a0: 74 75 72 6e 20 26 5f 53 65 63 74 6f 72 4e 75 6d turn &_SectorNum
45b0: 62 65 72 3b 20 7d 0d 0a 7d 0d 0a 61 6c 69 61 73 ber; }..}..alias
45c0: 20 46 4f 52 4d 41 54 5f 45 58 5f 50 41 52 41 4d FORMAT_EX_PARAM
45d0: 45 54 45 52 53 2a 20 50 46 4f 52 4d 41 54 5f 45 ETERS* PFORMAT_E
45e0: 58 5f 50 41 52 41 4d 45 54 45 52 53 3b 0d 0a 0d X_PARAMETERS;...
45f0: 0a 73 74 72 75 63 74 20 47 45 54 5f 4c 45 4e 47 .struct GET_LENG
4600: 54 48 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 20 7b TH_INFORMATION {
4610: 0d 0a 09 4c 41 52 47 45 5f 49 4e 54 45 47 45 52 ...LARGE_INTEGER
4620: 20 4c 65 6e 67 74 68 3b 0d 0a 7d 0d 0a 0d 0a 73 Length;..}....s
4630: 74 72 75 63 74 20 48 49 53 54 4f 47 52 41 4d 5f truct HISTOGRAM_
4640: 42 55 43 4b 45 54 20 7b 0d 0a 09 44 57 4f 52 44 BUCKET {...DWORD
4650: 20 52 65 61 64 73 3b 0d 0a 09 44 57 4f 52 44 20 Reads;...DWORD
4660: 57 72 69 74 65 73 3b 0d 0a 7d 0d 0a 61 6c 69 61 Writes;..}..alia
4670: 73 20 48 49 53 54 4f 47 52 41 4d 5f 42 55 43 4b s HISTOGRAM_BUCK
4680: 45 54 2a 20 50 48 49 53 54 4f 47 52 41 4d 5f 42 ET* PHISTOGRAM_B
4690: 55 43 4b 45 54 3b 0d 0a 0d 0a 73 74 72 75 63 74 UCKET;....struct
46a0: 20 44 49 53 4b 5f 48 49 53 54 4f 47 52 41 4d 20 DISK_HISTOGRAM
46b0: 7b 0d 0a 09 4c 41 52 47 45 5f 49 4e 54 45 47 45 {...LARGE_INTEGE
46c0: 52 20 20 20 20 20 44 69 73 6b 53 69 7a 65 3b 0d R DiskSize;.
46d0: 0a 09 4c 41 52 47 45 5f 49 4e 54 45 47 45 52 20 ..LARGE_INTEGER
46e0: 20 20 20 20 53 74 61 72 74 3b 0d 0a 09 4c 41 52 Start;...LAR
46f0: 47 45 5f 49 4e 54 45 47 45 52 20 20 20 20 20 45 GE_INTEGER E
4700: 6e 64 3b 0d 0a 09 4c 41 52 47 45 5f 49 4e 54 45 nd;...LARGE_INTE
4710: 47 45 52 20 20 20 20 20 41 76 65 72 61 67 65 3b GER Average;
4720: 0d 0a 09 4c 41 52 47 45 5f 49 4e 54 45 47 45 52 ...LARGE_INTEGER
4730: 20 20 20 20 20 41 76 65 72 61 67 65 52 65 61 64 AverageRead
4740: 3b 0d 0a 09 4c 41 52 47 45 5f 49 4e 54 45 47 45 ;...LARGE_INTEGE
4750: 52 20 20 20 20 20 41 76 65 72 61 67 65 57 72 69 R AverageWri
4760: 74 65 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 te;...DWORD
4770: 20 20 20 20 20 20 20 20 47 72 61 6e 75 6c 61 72 Granular
4780: 69 74 79 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20 ity;...DWORD
4790: 20 20 20 20 20 20 20 20 20 53 69 7a 65 3b 0d 0a Size;..
47a0: 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 20 .DWORD
47b0: 20 20 20 52 65 61 64 43 6f 75 6e 74 3b 0d 0a 09 ReadCount;...
47c0: 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 20 20 DWORD
47d0: 20 20 57 72 69 74 65 43 6f 75 6e 74 3b 0d 0a 09 WriteCount;...
47e0: 50 48 49 53 54 4f 47 52 41 4d 5f 42 55 43 4b 45 PHISTOGRAM_BUCKE
47f0: 54 20 48 69 73 74 6f 67 72 61 6d 3b 0d 0a 7d 0d T Histogram;..}.
4800: 0a 61 6c 69 61 73 20 44 49 53 4b 5f 48 49 53 54 .alias DISK_HIST
4810: 4f 47 52 41 4d 2a 20 50 44 49 53 4b 5f 48 49 53 OGRAM* PDISK_HIS
4820: 54 4f 47 52 41 4d 3b 0d 0a 0d 0a 73 74 72 75 63 TOGRAM;....struc
4830: 74 20 44 49 53 4b 5f 45 58 54 45 4e 54 20 7b 0d t DISK_EXTENT {.
4840: 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 ..DWORD
4850: 44 69 73 6b 4e 75 6d 62 65 72 3b 0d 0a 09 4c 41 DiskNumber;...LA
4860: 52 47 45 5f 49 4e 54 45 47 45 52 20 53 74 61 72 RGE_INTEGER Star
4870: 74 69 6e 67 4f 66 66 73 65 74 3b 0d 0a 09 4c 41 tingOffset;...LA
4880: 52 47 45 5f 49 4e 54 45 47 45 52 20 45 78 74 65 RGE_INTEGER Exte
4890: 6e 74 4c 65 6e 67 74 68 3b 0d 0a 7d 0d 0a 61 6c ntLength;..}..al
48a0: 69 61 73 20 44 49 53 4b 5f 45 58 54 45 4e 54 2a ias DISK_EXTENT*
48b0: 20 50 44 49 53 4b 5f 45 58 54 45 4e 54 3b 0d 0a PDISK_EXTENT;..
48c0: 0d 0a 73 74 72 75 63 74 20 56 4f 4c 55 4d 45 5f ..struct VOLUME_
48d0: 44 49 53 4b 5f 45 58 54 45 4e 54 53 20 7b 0d 0a DISK_EXTENTS {..
48e0: 09 44 57 4f 52 44 20 20 20 20 20 20 20 4e 75 6d .DWORD Num
48f0: 62 65 72 4f 66 44 69 73 6b 45 78 74 65 6e 74 73 berOfDiskExtents
4900: 3b 0d 0a 09 44 49 53 4b 5f 45 58 54 45 4e 54 20 ;...DISK_EXTENT
4910: 5f 45 78 74 65 6e 74 73 3b 0d 0a 0d 0a 09 44 49 _Extents;.....DI
4920: 53 4b 5f 45 58 54 45 4e 54 2a 20 45 78 74 65 6e SK_EXTENT* Exten
4930: 74 73 28 29 20 7b 20 72 65 74 75 72 6e 20 26 5f ts() { return &_
4940: 45 78 74 65 6e 74 73 3b 20 7d 0d 0a 7d 0d 0a 61 Extents; }..}..a
4950: 6c 69 61 73 20 56 4f 4c 55 4d 45 5f 44 49 53 4b lias VOLUME_DISK
4960: 5f 45 58 54 45 4e 54 53 2a 20 50 56 4f 4c 55 4d _EXTENTS* PVOLUM
4970: 45 5f 44 49 53 4b 5f 45 58 54 45 4e 54 53 3b 0d E_DISK_EXTENTS;.
4980: 0a 0d 0a 73 74 72 75 63 74 20 50 41 52 54 49 54 ...struct PARTIT
4990: 49 4f 4e 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 20 ION_INFORMATION
49a0: 7b 0d 0a 09 4c 41 52 47 45 5f 49 4e 54 45 47 45 {...LARGE_INTEGE
49b0: 52 20 53 74 61 72 74 69 6e 67 4f 66 66 73 65 74 R StartingOffset
49c0: 3b 0d 0a 09 4c 41 52 47 45 5f 49 4e 54 45 47 45 ;...LARGE_INTEGE
49d0: 52 20 50 61 72 74 69 74 69 6f 6e 4c 65 6e 67 74 R PartitionLengt
49e0: 68 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 20 h;...DWORD
49f0: 20 20 20 48 69 64 64 65 6e 53 65 63 74 6f 72 73 HiddenSectors
4a00: 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20 ;...DWORD
4a10: 20 20 50 61 72 74 69 74 69 6f 6e 4e 75 6d 62 65 PartitionNumbe
4a20: 72 3b 0d 0a 09 42 59 54 45 20 20 20 20 20 20 20 r;...BYTE
4a30: 20 20 20 50 61 72 74 69 74 69 6f 6e 54 79 70 65 PartitionType
4a40: 3b 0d 0a 09 42 4f 4f 4c 45 41 4e 20 20 20 20 20 ;...BOOLEAN
4a50: 20 20 42 6f 6f 74 49 6e 64 69 63 61 74 6f 72 3b BootIndicator;
4a60: 0d 0a 09 42 4f 4f 4c 45 41 4e 20 20 20 20 20 20 ...BOOLEAN
4a70: 20 52 65 63 6f 67 6e 69 7a 65 64 50 61 72 74 69 RecognizedParti
4a80: 74 69 6f 6e 3b 0d 0a 09 42 4f 4f 4c 45 41 4e 20 tion;...BOOLEAN
4a90: 20 20 20 20 20 20 52 65 77 72 69 74 65 50 61 72 RewritePar
4aa0: 74 69 74 69 6f 6e 3b 0d 0a 7d 0d 0a 61 6c 69 61 tition;..}..alia
4ab0: 73 20 50 41 52 54 49 54 49 4f 4e 5f 49 4e 46 4f s PARTITION_INFO
4ac0: 52 4d 41 54 49 4f 4e 2a 20 50 50 41 52 54 49 54 RMATION* PPARTIT
4ad0: 49 4f 4e 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 3b ION_INFORMATION;
4ae0: 0d 0a 0d 0a 73 74 72 75 63 74 20 44 52 49 56 45 ....struct DRIVE
4af0: 5f 4c 41 59 4f 55 54 5f 49 4e 46 4f 52 4d 41 54 _LAYOUT_INFORMAT
4b00: 49 4f 4e 20 7b 0d 0a 09 44 57 4f 52 44 20 20 20 ION {...DWORD
4b10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 61 Pa
4b20: 72 74 69 74 69 6f 6e 43 6f 75 6e 74 3b 0d 0a 09 rtitionCount;...
4b30: 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 20 20 DWORD
4b40: 20 20 20 20 20 20 53 69 67 6e 61 74 75 72 65 3b Signature;
4b50: 0d 0a 09 50 41 52 54 49 54 49 4f 4e 5f 49 4e 46 ...PARTITION_INF
4b60: 4f 52 4d 41 54 49 4f 4e 20 5f 50 61 72 74 69 74 ORMATION _Partit
4b70: 69 6f 6e 45 6e 74 72 79 3b 0d 0a 0d 0a 09 50 41 ionEntry;.....PA
4b80: 52 54 49 54 49 4f 4e 5f 49 4e 46 4f 52 4d 41 54 RTITION_INFORMAT
4b90: 49 4f 4e 2a 20 50 61 72 74 69 74 69 6f 6e 45 6e ION* PartitionEn
4ba0: 74 72 79 28 29 20 7b 20 72 65 74 75 72 6e 20 26 try() { return &
4bb0: 5f 50 61 72 74 69 74 69 6f 6e 45 6e 74 72 79 3b _PartitionEntry;
4bc0: 20 7d 0d 0a 7d 0d 0a 61 6c 69 61 73 20 44 52 49 }..}..alias DRI
4bd0: 56 45 5f 4c 41 59 4f 55 54 5f 49 4e 46 4f 52 4d VE_LAYOUT_INFORM
4be0: 41 54 49 4f 4e 2a 20 50 44 52 49 56 45 5f 4c 41 ATION* PDRIVE_LA
4bf0: 59 4f 55 54 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e YOUT_INFORMATION
4c00: 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 44 52 49 56 ;....struct DRIV
4c10: 45 5f 4c 41 59 4f 55 54 5f 49 4e 46 4f 52 4d 41 E_LAYOUT_INFORMA
4c20: 54 49 4f 4e 5f 47 50 54 20 7b 0d 0a 09 47 55 49 TION_GPT {...GUI
4c30: 44 20 20 20 20 20 20 20 20 20 20 44 69 73 6b 49 D DiskI
4c40: 64 3b 0d 0a 09 4c 41 52 47 45 5f 49 4e 54 45 47 d;...LARGE_INTEG
4c50: 45 52 20 53 74 61 72 74 69 6e 67 55 73 61 62 6c ER StartingUsabl
4c60: 65 4f 66 66 73 65 74 3b 0d 0a 09 4c 41 52 47 45 eOffset;...LARGE
4c70: 5f 49 4e 54 45 47 45 52 20 55 73 61 62 6c 65 4c _INTEGER UsableL
4c80: 65 6e 67 74 68 3b 0d 0a 09 55 4c 4f 4e 47 20 20 ength;...ULONG
4c90: 20 20 20 20 20 20 20 4d 61 78 50 61 72 74 69 74 MaxPartit
4ca0: 69 6f 6e 43 6f 75 6e 74 3b 0d 0a 7d 0d 0a 61 6c ionCount;..}..al
4cb0: 69 61 73 20 44 52 49 56 45 5f 4c 41 59 4f 55 54 ias DRIVE_LAYOUT
4cc0: 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 5f 47 50 54 _INFORMATION_GPT
4cd0: 2a 20 50 44 52 49 56 45 5f 4c 41 59 4f 55 54 5f * PDRIVE_LAYOUT_
4ce0: 49 4e 46 4f 52 4d 41 54 49 4f 4e 5f 47 50 54 3b INFORMATION_GPT;
4cf0: 0d 0a 0d 0a 73 74 72 75 63 74 20 44 52 49 56 45 ....struct DRIVE
4d00: 5f 4c 41 59 4f 55 54 5f 49 4e 46 4f 52 4d 41 54 _LAYOUT_INFORMAT
4d10: 49 4f 4e 5f 4d 42 52 20 7b 0d 0a 09 55 4c 4f 4e ION_MBR {...ULON
4d20: 47 20 53 69 67 6e 61 74 75 72 65 3b 0d 0a 7d 0d G Signature;..}.
4d30: 0a 61 6c 69 61 73 20 44 52 49 56 45 5f 4c 41 59 .alias DRIVE_LAY
4d40: 4f 55 54 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 5f OUT_INFORMATION_
4d50: 4d 42 52 2a 20 50 44 52 49 56 45 5f 4c 41 59 4f MBR* PDRIVE_LAYO
4d60: 55 54 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 5f 4d UT_INFORMATION_M
4d70: 42 52 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 50 41 BR;....struct PA
4d80: 52 54 49 54 49 4f 4e 5f 49 4e 46 4f 52 4d 41 54 RTITION_INFORMAT
4d90: 49 4f 4e 5f 4d 42 52 20 7b 0d 0a 09 42 59 54 45 ION_MBR {...BYTE
4da0: 20 20 20 20 50 61 72 74 69 74 69 6f 6e 54 79 70 PartitionTyp
4db0: 65 3b 0d 0a 09 42 4f 4f 4c 45 41 4e 20 42 6f 6f e;...BOOLEAN Boo
4dc0: 74 49 6e 64 69 63 61 74 6f 72 3b 0d 0a 09 42 4f tIndicator;...BO
4dd0: 4f 4c 45 41 4e 20 52 65 63 6f 67 6e 69 7a 65 64 OLEAN Recognized
4de0: 50 61 72 74 69 74 69 6f 6e 3b 0d 0a 09 44 57 4f Partition;...DWO
4df0: 52 44 20 20 20 48 69 64 64 65 6e 53 65 63 74 6f RD HiddenSecto
4e00: 72 73 3b 0d 0a 7d 0d 0a 0d 0a 73 74 72 75 63 74 rs;..}....struct
4e10: 20 50 41 52 54 49 54 49 4f 4e 5f 49 4e 46 4f 52 PARTITION_INFOR
4e20: 4d 41 54 49 4f 4e 5f 47 50 54 20 7b 0d 0a 09 47 MATION_GPT {...G
4e30: 55 49 44 20 20 20 20 20 20 50 61 72 74 69 74 69 UID Partiti
4e40: 6f 6e 54 79 70 65 3b 0d 0a 09 47 55 49 44 20 20 onType;...GUID
4e50: 20 20 20 20 50 61 72 74 69 74 69 6f 6e 49 64 3b PartitionId;
4e60: 0d 0a 09 44 57 4f 52 44 36 34 20 20 20 41 74 74 ...DWORD64 Att
4e70: 72 69 62 75 74 65 73 3b 0d 0a 09 57 43 48 41 52 ributes;...WCHAR
4e80: 5b 33 36 5d 20 4e 61 6d 65 3b 0d 0a 7d 0d 0a 0d [36] Name;..}...
4e90: 0a 73 74 72 75 63 74 20 50 41 52 54 49 54 49 4f .struct PARTITIO
4ea0: 4e 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 5f 45 58 N_INFORMATION_EX
4eb0: 20 7b 0d 0a 09 50 41 52 54 49 54 49 4f 4e 5f 53 {...PARTITION_S
4ec0: 54 59 4c 45 20 50 61 72 74 69 74 69 6f 6e 53 74 TYLE PartitionSt
4ed0: 79 6c 65 3b 0d 0a 09 4c 41 52 47 45 5f 49 4e 54 yle;...LARGE_INT
4ee0: 45 47 45 52 20 20 20 53 74 61 72 74 69 6e 67 4f EGER StartingO
4ef0: 66 66 73 65 74 3b 0d 0a 09 4c 41 52 47 45 5f 49 ffset;...LARGE_I
4f00: 4e 54 45 47 45 52 20 20 20 50 61 72 74 69 74 69 NTEGER Partiti
4f10: 6f 6e 4c 65 6e 67 74 68 3b 0d 0a 09 44 57 4f 52 onLength;...DWOR
4f20: 44 20 20 20 20 20 20 20 20 20 20 20 50 61 72 74 D Part
4f30: 69 74 69 6f 6e 4e 75 6d 62 65 72 3b 0d 0a 09 42 itionNumber;...B
4f40: 4f 4f 4c 45 41 4e 20 20 20 20 20 20 20 20 20 52 OOLEAN R
4f50: 65 77 72 69 74 65 50 61 72 74 69 74 69 6f 6e 3b ewritePartition;
4f60: 0d 0a 09 75 6e 69 6f 6e 20 7b 0d 0a 09 09 50 41 ...union {....PA
4f70: 52 54 49 54 49 4f 4e 5f 49 4e 46 4f 52 4d 41 54 RTITION_INFORMAT
4f80: 49 4f 4e 5f 4d 42 52 20 4d 62 72 3b 0d 0a 09 09 ION_MBR Mbr;....
4f90: 50 41 52 54 49 54 49 4f 4e 5f 49 4e 46 4f 52 4d PARTITION_INFORM
4fa0: 41 54 49 4f 4e 5f 47 50 54 20 47 70 74 3b 0d 0a ATION_GPT Gpt;..
4fb0: 09 7d 0d 0a 7d 0d 0a 0d 0a 73 74 72 75 63 74 20 .}..}....struct
4fc0: 44 52 49 56 45 5f 4c 41 59 4f 55 54 5f 49 4e 46 DRIVE_LAYOUT_INF
4fd0: 4f 52 4d 41 54 49 4f 4e 5f 45 58 20 7b 0d 0a 09 ORMATION_EX {...
4fe0: 44 57 4f 52 44 20 50 61 72 74 69 74 69 6f 6e 53 DWORD PartitionS
4ff0: 74 79 6c 65 3b 0d 0a 09 44 57 4f 52 44 20 50 61 tyle;...DWORD Pa
5000: 72 74 69 74 69 6f 6e 43 6f 75 6e 74 3b 0d 0a 09 rtitionCount;...
5010: 75 6e 69 6f 6e 20 7b 0d 0a 09 09 44 52 49 56 45 union {....DRIVE
5020: 5f 4c 41 59 4f 55 54 5f 49 4e 46 4f 52 4d 41 54 _LAYOUT_INFORMAT
5030: 49 4f 4e 5f 4d 42 52 20 4d 62 72 3b 0d 0a 09 09 ION_MBR Mbr;....
5040: 44 52 49 56 45 5f 4c 41 59 4f 55 54 5f 49 4e 46 DRIVE_LAYOUT_INF
5050: 4f 52 4d 41 54 49 4f 4e 5f 47 50 54 20 47 70 74 ORMATION_GPT Gpt
5060: 3b 0d 0a 09 7d 0d 0a 09 50 41 52 54 49 54 49 4f ;...}...PARTITIO
5070: 4e 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 5f 45 58 N_INFORMATION_EX
5080: 20 5f 50 61 72 74 69 74 69 6f 6e 45 6e 74 72 79 _PartitionEntry
5090: 3b 0d 0a 0d 0a 09 50 41 52 54 49 54 49 4f 4e 5f ;.....PARTITION_
50a0: 49 4e 46 4f 52 4d 41 54 49 4f 4e 5f 45 58 2a 20 INFORMATION_EX*
50b0: 50 61 72 74 69 74 69 6f 6e 45 6e 74 72 79 28 29 PartitionEntry()
50c0: 20 7b 20 72 65 74 75 72 6e 20 26 5f 50 61 72 74 { return &_Part
50d0: 69 74 69 6f 6e 45 6e 74 72 79 3b 20 7d 0d 0a 7d itionEntry; }..}
50e0: 0d 0a 61 6c 69 61 73 20 44 52 49 56 45 5f 4c 41 ..alias DRIVE_LA
50f0: 59 4f 55 54 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e YOUT_INFORMATION
5100: 5f 45 58 2a 20 50 44 52 49 56 45 5f 4c 41 59 4f _EX* PDRIVE_LAYO
5110: 55 54 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 5f 45 UT_INFORMATION_E
5120: 58 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 4d 4f 56 X;....struct MOV
5130: 45 5f 46 49 4c 45 5f 44 41 54 41 20 7b 0d 0a 09 E_FILE_DATA {...
5140: 48 41 4e 44 4c 45 20 46 69 6c 65 48 61 6e 64 6c HANDLE FileHandl
5150: 65 3b 0d 0a 09 4c 41 52 47 45 5f 49 4e 54 45 47 e;...LARGE_INTEG
5160: 45 52 20 53 74 61 72 74 69 6e 67 56 63 6e 3b 0d ER StartingVcn;.
5170: 0a 09 4c 41 52 47 45 5f 49 4e 54 45 47 45 52 20 ..LARGE_INTEGER
5180: 53 74 61 72 74 69 6e 67 4c 63 6e 3b 0d 0a 09 44 StartingLcn;...D
5190: 57 4f 52 44 20 43 6c 75 73 74 65 72 43 6f 75 6e WORD ClusterCoun
51a0: 74 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 4d 4f 56 t;..}..alias MOV
51b0: 45 5f 46 49 4c 45 5f 44 41 54 41 2a 20 50 4d 4f E_FILE_DATA* PMO
51c0: 56 45 5f 46 49 4c 45 5f 44 41 54 41 3b 0d 0a 0d VE_FILE_DATA;...
51d0: 0a 73 74 72 75 63 74 20 50 45 52 46 5f 42 49 4e .struct PERF_BIN
51e0: 20 7b 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 4e {...DWORD N
51f0: 75 6d 62 65 72 4f 66 42 69 6e 73 3b 0d 0a 09 44 umberOfBins;...D
5200: 57 4f 52 44 20 20 20 20 20 54 79 70 65 4f 66 42 WORD TypeOfB
5210: 69 6e 3b 0d 0a 09 42 49 4e 5f 52 41 4e 47 45 20 in;...BIN_RANGE
5220: 5f 42 69 6e 73 52 61 6e 67 65 73 3b 0d 0a 0d 0a _BinsRanges;....
5230: 09 42 49 4e 5f 52 41 4e 47 45 2a 20 42 69 6e 73 .BIN_RANGE* Bins
5240: 52 61 6e 67 65 73 28 29 20 7b 20 72 65 74 75 72 Ranges() { retur
5250: 6e 20 26 5f 42 69 6e 73 52 61 6e 67 65 73 3b 20 n &_BinsRanges;
5260: 7d 0d 0a 7d 0d 0a 61 6c 69 61 73 20 50 45 52 46 }..}..alias PERF
5270: 5f 42 49 4e 2a 20 50 50 45 52 46 5f 42 49 4e 3b _BIN* PPERF_BIN;
5280: 0d 0a 0d 0a 73 74 72 75 63 74 20 50 52 45 56 45 ....struct PREVE
5290: 4e 54 5f 4d 45 44 49 41 5f 52 45 4d 4f 56 41 4c NT_MEDIA_REMOVAL
52a0: 20 7b 0d 0a 09 42 4f 4f 4c 45 41 4e 20 50 72 65 {...BOOLEAN Pre
52b0: 76 65 6e 74 4d 65 64 69 61 52 65 6d 6f 76 61 6c ventMediaRemoval
52c0: 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 50 52 45 56 ;..}..alias PREV
52d0: 45 4e 54 5f 4d 45 44 49 41 5f 52 45 4d 4f 56 41 ENT_MEDIA_REMOVA
52e0: 4c 2a 20 50 50 52 45 56 45 4e 54 5f 4d 45 44 49 L* PPREVENT_MEDI
52f0: 41 5f 52 45 4d 4f 56 41 4c 3b 0d 0a 0d 0a 73 74 A_REMOVAL;....st
5300: 72 75 63 74 20 52 45 54 52 49 45 56 41 4c 5f 50 ruct RETRIEVAL_P
5310: 4f 49 4e 54 45 52 53 5f 42 55 46 46 45 52 20 7b OINTERS_BUFFER {
5320: 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 ...DWORD
5330: 20 45 78 74 65 6e 74 43 6f 75 6e 74 3b 0d 0a 09 ExtentCount;...
5340: 4c 41 52 47 45 5f 49 4e 54 45 47 45 52 20 53 74 LARGE_INTEGER St
5350: 61 72 74 69 6e 67 56 63 6e 3b 0d 0a 09 2f 2f 20 artingVcn;...//
5360: 49 6e 20 4d 69 6e 47 57 2c 20 74 68 69 73 20 69 In MinGW, this i
5370: 73 20 64 65 63 6c 61 72 65 64 20 61 73 20 73 74 s declared as st
5380: 72 75 63 74 20 7b 20 2e 2e 2e 20 7d 20 45 78 74 ruct { ... } Ext
5390: 65 6e 74 73 5b 31 5d 3b 0d 0a 09 73 74 72 75 63 ents[1];...struc
53a0: 74 20 45 78 74 65 6e 74 20 7b 0d 0a 09 09 4c 41 t Extent {....LA
53b0: 52 47 45 5f 49 4e 54 45 47 45 52 20 4e 65 78 74 RGE_INTEGER Next
53c0: 56 63 6e 3b 0d 0a 09 09 4c 41 52 47 45 5f 49 4e Vcn;....LARGE_IN
53d0: 54 45 47 45 52 20 4c 63 6e 3b 0d 0a 09 7d 0d 0a TEGER Lcn;...}..
53e0: 09 45 78 74 65 6e 74 20 5f 45 78 74 65 6e 74 73 .Extent _Extents
53f0: 3b 0d 0a 0d 0a 09 45 78 74 65 6e 74 2a 20 45 78 ;.....Extent* Ex
5400: 74 65 6e 74 73 28 29 20 7b 20 72 65 74 75 72 6e tents() { return
5410: 20 26 5f 45 78 74 65 6e 74 73 3b 20 7d 0d 0a 7d &_Extents; }..}
5420: 0d 0a 61 6c 69 61 73 20 52 45 54 52 49 45 56 41 ..alias RETRIEVA
5430: 4c 5f 50 4f 49 4e 54 45 52 53 5f 42 55 46 46 45 L_POINTERS_BUFFE
5440: 52 2a 20 50 52 45 54 52 49 45 56 41 4c 5f 50 4f R* PRETRIEVAL_PO
5450: 49 4e 54 45 52 53 5f 42 55 46 46 45 52 3b 0d 0a INTERS_BUFFER;..
5460: 0d 0a 73 74 72 75 63 74 20 52 45 41 53 53 49 47 ..struct REASSIG
5470: 4e 5f 42 4c 4f 43 4b 53 20 7b 0d 0a 09 57 4f 52 N_BLOCKS {...WOR
5480: 44 20 20 52 65 73 65 72 76 65 64 3b 0d 0a 09 57 D Reserved;...W
5490: 4f 52 44 20 20 43 6f 75 6e 74 3b 0d 0a 09 44 57 ORD Count;...DW
54a0: 4f 52 44 20 5f 42 6c 6f 63 6b 4e 75 6d 62 65 72 ORD _BlockNumber
54b0: 3b 0d 0a 0d 0a 09 44 57 4f 52 44 2a 20 42 6c 6f ;.....DWORD* Blo
54c0: 63 6b 4e 75 6d 62 65 72 28 29 20 7b 20 72 65 74 ckNumber() { ret
54d0: 75 72 6e 20 26 5f 42 6c 6f 63 6b 4e 75 6d 62 65 urn &_BlockNumbe
54e0: 72 3b 20 7d 0d 0a 7d 0d 0a 61 6c 69 61 73 20 52 r; }..}..alias R
54f0: 45 41 53 53 49 47 4e 5f 42 4c 4f 43 4b 53 2a 20 EASSIGN_BLOCKS*
5500: 50 52 45 41 53 53 49 47 4e 5f 42 4c 4f 43 4b 53 PREASSIGN_BLOCKS
5510: 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 53 45 54 5f ;....struct SET_
5520: 50 41 52 54 49 54 49 4f 4e 5f 49 4e 46 4f 52 4d PARTITION_INFORM
5530: 41 54 49 4f 4e 20 7b 0d 0a 09 42 59 54 45 20 50 ATION {...BYTE P
5540: 61 72 74 69 74 69 6f 6e 54 79 70 65 3b 0d 0a 7d artitionType;..}
5550: 0d 0a 61 6c 69 61 73 20 53 45 54 5f 50 41 52 54 ..alias SET_PART
5560: 49 54 49 4f 4e 5f 49 4e 46 4f 52 4d 41 54 49 4f ITION_INFORMATIO
5570: 4e 2a 20 50 53 45 54 5f 50 41 52 54 49 54 49 4f N* PSET_PARTITIO
5580: 4e 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 3b 0d 0a N_INFORMATION;..
5590: 0d 0a 73 74 72 75 63 74 20 53 54 41 52 54 49 4e ..struct STARTIN
55a0: 47 5f 4c 43 4e 5f 49 4e 50 55 54 5f 42 55 46 46 G_LCN_INPUT_BUFF
55b0: 45 52 20 7b 0d 0a 09 4c 41 52 47 45 5f 49 4e 54 ER {...LARGE_INT
55c0: 45 47 45 52 20 53 74 61 72 74 69 6e 67 4c 63 6e EGER StartingLcn
55d0: 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 53 54 41 52 ;..}..alias STAR
55e0: 54 49 4e 47 5f 4c 43 4e 5f 49 4e 50 55 54 5f 42 TING_LCN_INPUT_B
55f0: 55 46 46 45 52 2a 20 50 53 54 41 52 54 49 4e 47 UFFER* PSTARTING
5600: 5f 4c 43 4e 5f 49 4e 50 55 54 5f 42 55 46 46 45 _LCN_INPUT_BUFFE
5610: 52 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 53 54 41 R;....struct STA
5620: 52 54 49 4e 47 5f 56 43 4e 5f 49 4e 50 55 54 5f RTING_VCN_INPUT_
5630: 42 55 46 46 45 52 20 7b 0d 0a 09 4c 41 52 47 45 BUFFER {...LARGE
5640: 5f 49 4e 54 45 47 45 52 20 53 74 61 72 74 69 6e _INTEGER Startin
5650: 67 56 63 6e 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 gVcn;..}..alias
5660: 53 54 41 52 54 49 4e 47 5f 56 43 4e 5f 49 4e 50 STARTING_VCN_INP
5670: 55 54 5f 42 55 46 46 45 52 2a 20 50 53 54 41 52 UT_BUFFER* PSTAR
5680: 54 49 4e 47 5f 56 43 4e 5f 49 4e 50 55 54 5f 42 TING_VCN_INPUT_B
5690: 55 46 46 45 52 3b 0d 0a 0d 0a 73 74 72 75 63 74 UFFER;....struct
56a0: 20 56 45 52 49 46 59 5f 49 4e 46 4f 52 4d 41 54 VERIFY_INFORMAT
56b0: 49 4f 4e 20 7b 0d 0a 09 4c 41 52 47 45 5f 49 4e ION {...LARGE_IN
56c0: 54 45 47 45 52 20 53 74 61 72 74 69 6e 67 4f 66 TEGER StartingOf
56d0: 66 73 65 74 3b 0d 0a 09 44 57 4f 52 44 20 20 20 fset;...DWORD
56e0: 20 20 20 20 20 20 4c 65 6e 67 74 68 3b 0d 0a 7d Length;..}
56f0: 0d 0a 61 6c 69 61 73 20 56 45 52 49 46 59 5f 49 ..alias VERIFY_I
5700: 4e 46 4f 52 4d 41 54 49 4f 4e 2a 20 50 56 45 52 NFORMATION* PVER
5710: 49 46 59 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 3b IFY_INFORMATION;
5720: 0d 0a 0d 0a 73 74 72 75 63 74 20 56 4f 4c 55 4d ....struct VOLUM
5730: 45 5f 42 49 54 4d 41 50 5f 42 55 46 46 45 52 20 E_BITMAP_BUFFER
5740: 7b 0d 0a 09 4c 41 52 47 45 5f 49 4e 54 45 47 45 {...LARGE_INTEGE
5750: 52 20 53 74 61 72 74 69 6e 67 4c 63 6e 3b 0d 0a R StartingLcn;..
5760: 09 4c 41 52 47 45 5f 49 4e 54 45 47 45 52 20 42 .LARGE_INTEGER B
5770: 69 74 6d 61 70 53 69 7a 65 3b 0d 0a 09 42 59 54 itmapSize;...BYT
5780: 45 20 20 20 20 20 20 20 20 20 20 5f 42 75 66 66 E _Buff
5790: 65 72 3b 0d 0a 0d 0a 09 42 59 54 45 2a 20 42 75 er;.....BYTE* Bu
57a0: 66 66 65 72 28 29 20 7b 20 72 65 74 75 72 6e 20 ffer() { return
57b0: 26 5f 42 75 66 66 65 72 3b 20 7d 0d 0a 7d 0d 0a &_Buffer; }..}..
57c0: 61 6c 69 61 73 20 56 4f 4c 55 4d 45 5f 42 49 54 alias VOLUME_BIT
57d0: 4d 41 50 5f 42 55 46 46 45 52 2a 20 50 56 4f 4c MAP_BUFFER* PVOL
57e0: 55 4d 45 5f 42 49 54 4d 41 50 5f 42 55 46 46 45 UME_BITMAP_BUFFE
57f0: 52 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 4e 54 46 R;....struct NTF
5800: 53 5f 56 4f 4c 55 4d 45 5f 44 41 54 41 5f 42 55 S_VOLUME_DATA_BU
5810: 46 46 45 52 20 7b 0d 0a 09 4c 41 52 47 45 5f 49 FFER {...LARGE_I
5820: 4e 54 45 47 45 52 20 56 6f 6c 75 6d 65 53 65 72 NTEGER VolumeSer
5830: 69 61 6c 4e 75 6d 62 65 72 3b 0d 0a 09 4c 41 52 ialNumber;...LAR
5840: 47 45 5f 49 4e 54 45 47 45 52 20 4e 75 6d 62 65 GE_INTEGER Numbe
5850: 72 53 65 63 74 6f 72 73 3b 0d 0a 09 4c 41 52 47 rSectors;...LARG
5860: 45 5f 49 4e 54 45 47 45 52 20 54 6f 74 61 6c 43 E_INTEGER TotalC
5870: 6c 75 73 74 65 72 73 3b 0d 0a 09 4c 41 52 47 45 lusters;...LARGE
5880: 5f 49 4e 54 45 47 45 52 20 46 72 65 65 43 6c 75 _INTEGER FreeClu
5890: 73 74 65 72 73 3b 0d 0a 09 4c 41 52 47 45 5f 49 sters;...LARGE_I
58a0: 4e 54 45 47 45 52 20 54 6f 74 61 6c 52 65 73 65 NTEGER TotalRese
58b0: 72 76 65 64 3b 0d 0a 09 44 57 4f 52 44 20 20 20 rved;...DWORD
58c0: 20 20 20 20 20 20 42 79 74 65 73 50 65 72 53 65 BytesPerSe
58d0: 63 74 6f 72 3b 0d 0a 09 44 57 4f 52 44 20 20 20 ctor;...DWORD
58e0: 20 20 20 20 20 20 42 79 74 65 73 50 65 72 43 6c BytesPerCl
58f0: 75 73 74 65 72 3b 0d 0a 09 44 57 4f 52 44 20 20 uster;...DWORD
5900: 20 20 20 20 20 20 20 42 79 74 65 73 50 65 72 46 BytesPerF
5910: 69 6c 65 52 65 63 6f 72 64 53 65 67 6d 65 6e 74 ileRecordSegment
5920: 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20 ;...DWORD
5930: 20 20 43 6c 75 73 74 65 72 73 50 65 72 46 69 6c ClustersPerFil
5940: 65 52 65 63 6f 72 64 53 65 67 6d 65 6e 74 3b 0d eRecordSegment;.
5950: 0a 09 4c 41 52 47 45 5f 49 4e 54 45 47 45 52 20 ..LARGE_INTEGER
5960: 4d 66 74 56 61 6c 69 64 44 61 74 61 4c 65 6e 67 MftValidDataLeng
5970: 74 68 3b 0d 0a 09 4c 41 52 47 45 5f 49 4e 54 45 th;...LARGE_INTE
5980: 47 45 52 20 4d 66 74 53 74 61 72 74 4c 63 6e 3b GER MftStartLcn;
5990: 0d 0a 09 4c 41 52 47 45 5f 49 4e 54 45 47 45 52 ...LARGE_INTEGER
59a0: 20 4d 66 74 32 53 74 61 72 74 4c 63 6e 3b 0d 0a Mft2StartLcn;..
59b0: 09 4c 41 52 47 45 5f 49 4e 54 45 47 45 52 20 4d .LARGE_INTEGER M
59c0: 66 74 5a 6f 6e 65 53 74 61 72 74 3b 0d 0a 09 4c ftZoneStart;...L
59d0: 41 52 47 45 5f 49 4e 54 45 47 45 52 20 4d 66 74 ARGE_INTEGER Mft
59e0: 5a 6f 6e 65 45 6e 64 3b 0d 0a 7d 0d 0a 61 6c 69 ZoneEnd;..}..ali
59f0: 61 73 20 4e 54 46 53 5f 56 4f 4c 55 4d 45 5f 44 as NTFS_VOLUME_D
5a00: 41 54 41 5f 42 55 46 46 45 52 2a 20 50 4e 54 46 ATA_BUFFER* PNTF
5a10: 53 5f 56 4f 4c 55 4d 45 5f 44 41 54 41 5f 42 55 S_VOLUME_DATA_BU
5a20: 46 46 45 52 3b 0d 0a 0d 0a 0d 0a 62 6f 6f 6c 20 FFER;......bool
5a30: 49 73 52 65 63 6f 67 6e 69 7a 65 64 50 61 72 74 IsRecognizedPart
5a40: 69 74 69 6f 6e 28 42 59 54 45 20 74 29 20 7b 0d ition(BYTE t) {.
5a50: 0a 09 72 65 74 75 72 6e 20 28 28 74 20 26 20 50 ..return ((t & P
5a60: 41 52 54 49 54 49 4f 4e 5f 4e 54 46 54 29 0d 0a ARTITION_NTFT)..
5a70: 09 20 20 26 26 20 28 28 74 20 26 20 7e 56 41 4c . && ((t & ~VAL
5a80: 49 44 5f 4e 54 46 54 29 20 3d 3d 20 50 41 52 54 ID_NTFT) == PART
5a90: 49 54 49 4f 4e 5f 46 41 54 5f 31 32 0d 0a 09 20 ITION_FAT_12...
5aa0: 20 20 20 7c 7c 20 28 74 20 26 20 7e 56 41 4c 49 || (t & ~VALI
5ab0: 44 5f 4e 54 46 54 29 20 3d 3d 20 50 41 52 54 49 D_NTFT) == PARTI
5ac0: 54 49 4f 4e 5f 46 41 54 5f 31 36 0d 0a 09 20 20 TION_FAT_16...
5ad0: 20 20 7c 7c 20 28 74 20 26 20 7e 56 41 4c 49 44 || (t & ~VALID
5ae0: 5f 4e 54 46 54 29 20 3d 3d 20 50 41 52 54 49 54 _NTFT) == PARTIT
5af0: 49 4f 4e 5f 49 46 53 0d 0a 09 20 20 20 20 7c 7c ION_IFS... ||
5b00: 20 28 74 20 26 20 7e 56 41 4c 49 44 5f 4e 54 46 (t & ~VALID_NTF
5b10: 54 29 20 3d 3d 20 50 41 52 54 49 54 49 4f 4e 5f T) == PARTITION_
5b20: 48 55 47 45 0d 0a 09 20 20 20 20 7c 7c 20 28 74 HUGE... || (t
5b30: 20 26 20 7e 56 41 4c 49 44 5f 4e 54 46 54 29 20 & ~VALID_NTFT)
5b40: 3d 3d 20 50 41 52 54 49 54 49 4f 4e 5f 46 41 54 == PARTITION_FAT
5b50: 33 32 0d 0a 09 20 20 20 20 7c 7c 20 28 74 20 26 32... || (t &
5b60: 20 7e 56 41 4c 49 44 5f 4e 54 46 54 29 20 3d 3d ~VALID_NTFT) ==
5b70: 20 50 41 52 54 49 54 49 4f 4e 5f 46 41 54 33 32 PARTITION_FAT32
5b80: 5f 58 49 4e 54 31 33 0d 0a 09 20 20 20 20 7c 7c _XINT13... ||
5b90: 20 28 74 20 26 20 7e 56 41 4c 49 44 5f 4e 54 46 (t & ~VALID_NTF
5ba0: 54 29 20 3d 3d 20 50 41 52 54 49 54 49 4f 4e 5f T) == PARTITION_
5bb0: 58 49 4e 54 31 33 29 29 0d 0a 09 20 20 7c 7c 20 XINT13))... ||
5bc0: 28 74 20 26 20 7e 50 41 52 54 49 54 49 4f 4e 5f (t & ~PARTITION_
5bd0: 4e 54 46 54 29 20 3d 3d 20 50 41 52 54 49 54 49 NTFT) == PARTITI
5be0: 4f 4e 5f 46 41 54 5f 31 32 0d 0a 09 20 20 7c 7c ON_FAT_12... ||
5bf0: 20 28 74 20 26 20 7e 50 41 52 54 49 54 49 4f 4e (t & ~PARTITION
5c00: 5f 4e 54 46 54 29 20 3d 3d 20 50 41 52 54 49 54 _NTFT) == PARTIT
5c10: 49 4f 4e 5f 46 41 54 5f 31 36 0d 0a 09 20 20 7c ION_FAT_16... |
5c20: 7c 20 28 74 20 26 20 7e 50 41 52 54 49 54 49 4f | (t & ~PARTITIO
5c30: 4e 5f 4e 54 46 54 29 20 3d 3d 20 50 41 52 54 49 N_NTFT) == PARTI
5c40: 54 49 4f 4e 5f 49 46 53 0d 0a 09 20 20 7c 7c 20 TION_IFS... ||
5c50: 28 74 20 26 20 7e 50 41 52 54 49 54 49 4f 4e 5f (t & ~PARTITION_
5c60: 4e 54 46 54 29 20 3d 3d 20 50 41 52 54 49 54 49 NTFT) == PARTITI
5c70: 4f 4e 5f 48 55 47 45 0d 0a 09 20 20 7c 7c 20 28 ON_HUGE... || (
5c80: 74 20 26 20 7e 50 41 52 54 49 54 49 4f 4e 5f 4e t & ~PARTITION_N
5c90: 54 46 54 29 20 3d 3d 20 50 41 52 54 49 54 49 4f TFT) == PARTITIO
5ca0: 4e 5f 46 41 54 33 32 0d 0a 09 20 20 7c 7c 20 28 N_FAT32... || (
5cb0: 74 20 26 20 7e 50 41 52 54 49 54 49 4f 4e 5f 4e t & ~PARTITION_N
5cc0: 54 46 54 29 20 3d 3d 20 50 41 52 54 49 54 49 4f TFT) == PARTITIO
5cd0: 4e 5f 46 41 54 33 32 5f 58 49 4e 54 31 33 0d 0a N_FAT32_XINT13..
5ce0: 09 20 20 7c 7c 20 28 74 20 26 20 7e 50 41 52 54 . || (t & ~PART
5cf0: 49 54 49 4f 4e 5f 4e 54 46 54 29 20 3d 3d 20 50 ITION_NTFT) == P
5d00: 41 52 54 49 54 49 4f 4e 5f 58 49 4e 54 31 33 3b ARTITION_XINT13;
5d10: 0d 0a 7d 0d 0a 0d 0a 62 6f 6f 6c 20 49 73 43 6f ..}....bool IsCo
5d20: 6e 74 61 69 6e 65 72 50 61 72 74 69 74 69 6f 6e ntainerPartition
5d30: 28 42 59 54 45 20 74 29 20 7b 0d 0a 09 72 65 74 (BYTE t) {...ret
5d40: 75 72 6e 20 28 28 74 20 26 20 50 41 52 54 49 54 urn ((t & PARTIT
5d50: 49 4f 4e 5f 4e 54 46 54 29 0d 0a 09 20 20 26 26 ION_NTFT)... &&
5d60: 20 28 28 74 20 26 20 7e 56 41 4c 49 44 5f 4e 54 ((t & ~VALID_NT
5d70: 46 54 29 20 3d 3d 20 50 41 52 54 49 54 49 4f 4e FT) == PARTITION
5d80: 5f 45 58 54 45 4e 44 45 44 0d 0a 09 20 20 20 20 _EXTENDED...
5d90: 7c 7c 20 28 74 20 26 20 7e 56 41 4c 49 44 5f 4e || (t & ~VALID_N
5da0: 54 46 54 29 20 3d 3d 20 50 41 52 54 49 54 49 4f TFT) == PARTITIO
5db0: 4e 5f 58 49 4e 54 31 33 5f 45 58 54 45 4e 44 45 N_XINT13_EXTENDE
5dc0: 44 29 29 0d 0a 09 20 20 7c 7c 20 28 74 20 26 20 D))... || (t &
5dd0: 7e 50 41 52 54 49 54 49 4f 4e 5f 4e 54 46 54 29 ~PARTITION_NTFT)
5de0: 20 3d 3d 20 50 41 52 54 49 54 49 4f 4e 5f 45 58 == PARTITION_EX
5df0: 54 45 4e 44 45 44 0d 0a 09 20 20 7c 7c 20 28 74 TENDED... || (t
5e00: 20 26 20 7e 50 41 52 54 49 54 49 4f 4e 5f 4e 54 & ~PARTITION_NT
5e10: 46 54 29 20 3d 3d 20 50 41 52 54 49 54 49 4f 4e FT) == PARTITION
5e20: 5f 58 49 4e 54 31 33 5f 45 58 54 45 4e 44 45 44 _XINT13_EXTENDED
5e30: 3b 0d 0a 7d 0d 0a ;..}..