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 0a 2a 20 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 77 69 6e 69 6f 63 winioc
0070: 74 6c 2e 64 20 20 20 20 20 20 20 20 20 20 20 20 tl.d
0080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0090: 20 20 2a 0a 2a 20 20 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 2a 0a 2a 20 *.*
00e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00f0: 20 20 20 20 20 20 57 69 6e 64 6f 77 73 20 41 50 Windows AP
0100: 49 20 68 65 61 64 65 72 20 6d 6f 64 75 6c 65 20 I header module
0110: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0120: 20 20 20 20 20 20 2a 0a 2a 20 20 20 20 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: 2a 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 *.*
0180: 20 20 20 20 54 72 61 6e 73 6c 61 74 65 64 20 66 Translated f
0190: 72 6f 6d 20 4d 69 6e 47 57 20 57 69 6e 64 6f 77 rom MinGW Window
01a0: 73 20 68 65 61 64 65 72 73 20 20 20 20 20 20 20 s headers
01b0: 20 20 20 20 20 20 20 20 20 20 2a 0a 2a 20 20 20 *.*
01c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01d0: 20 20 20 20 20 20 20 20 62 79 20 53 74 65 77 61 by Stewa
01e0: 72 74 20 47 6f 72 64 6f 6e 20 20 20 20 20 20 20 rt Gordon
01f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0200: 20 20 20 20 2a 0a 2a 20 20 20 20 20 20 20 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 2a 0a *.
0250: 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 *
0260: 20 20 20 20 20 20 20 20 50 6c 61 63 65 64 20 69 Placed i
0270: 6e 74 6f 20 70 75 62 6c 69 63 20 64 6f 6d 61 69 nto public domai
0280: 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n
0290: 20 20 20 20 20 20 20 20 2a 0a 5c 2a 2a 2a 2a 2a *.\*****
02a0: 2a 2a 2a 2a 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 2f 0a 6d 6f 64 75 6c 65 20 77 69 6e 33 32 **/.module win32
02f0: 2e 77 69 6e 69 6f 63 74 6c 3b 0a 0a 2f 2f 20 46 .winioctl;..// F
0300: 49 58 4d 45 3a 20 63 68 65 63 6b 20 74 79 70 65 IXME: check type
0310: 73 20 6f 66 20 73 6f 6d 65 20 63 6f 6e 73 74 61 s of some consta
0320: 6e 74 73 0a 0a 70 72 69 76 61 74 65 20 69 6d 70 nts..private imp
0330: 6f 72 74 20 77 69 6e 33 32 2e 62 61 73 65 74 79 ort win32.basety
0340: 70 73 2c 20 77 69 6e 33 32 2e 77 69 6e 64 65 66 ps, win32.windef
0350: 3b 0a 0a 63 6f 6e 73 74 20 73 69 7a 65 5f 74 0a ;..const size_t.
0360: 09 48 49 53 54 5f 4e 4f 5f 4f 46 5f 42 55 43 4b .HIST_NO_OF_BUCK
0370: 45 54 53 20 3d 20 32 34 2c 0a 09 48 49 53 54 4f ETS = 24,..HISTO
0380: 47 52 41 4d 5f 42 55 43 4b 45 54 5f 53 49 5a 45 GRAM_BUCKET_SIZE
0390: 20 3d 20 48 49 53 54 4f 47 52 41 4d 5f 42 55 43 = HISTOGRAM_BUC
03a0: 4b 45 54 2e 73 69 7a 65 6f 66 2c 0a 09 44 49 53 KET.sizeof,..DIS
03b0: 4b 5f 48 49 53 54 4f 47 52 41 4d 5f 53 49 5a 45 K_HISTOGRAM_SIZE
03c0: 20 3d 20 44 49 53 4b 5f 48 49 53 54 4f 47 52 41 = DISK_HISTOGRA
03d0: 4d 2e 73 69 7a 65 6f 66 3b 0a 0a 61 6c 69 61 73 M.sizeof;..alias
03e0: 20 44 57 4f 52 44 20 44 45 56 49 43 45 5f 54 59 DWORD DEVICE_TY
03f0: 50 45 3b 0a 0a 65 6e 75 6d 20 3a 20 44 45 56 49 PE;..enum : DEVI
0400: 43 45 5f 54 59 50 45 20 7b 0a 09 46 49 4c 45 5f CE_TYPE {..FILE_
0410: 44 45 56 49 43 45 5f 42 45 45 50 20 20 20 20 20 DEVICE_BEEP
0420: 20 20 20 20 20 20 20 20 20 20 3d 20 31 2c 0a 09 = 1,..
0430: 46 49 4c 45 5f 44 45 56 49 43 45 5f 43 44 5f 52 FILE_DEVICE_CD_R
0440: 4f 4d 2c 0a 09 46 49 4c 45 5f 44 45 56 49 43 45 OM,..FILE_DEVICE
0450: 5f 43 44 5f 52 4f 4d 5f 46 49 4c 45 5f 53 59 53 _CD_ROM_FILE_SYS
0460: 54 45 4d 2c 0a 09 46 49 4c 45 5f 44 45 56 49 43 TEM,..FILE_DEVIC
0470: 45 5f 43 4f 4e 54 52 4f 4c 4c 45 52 2c 0a 09 46 E_CONTROLLER,..F
0480: 49 4c 45 5f 44 45 56 49 43 45 5f 44 41 54 41 4c ILE_DEVICE_DATAL
0490: 49 4e 4b 2c 0a 09 46 49 4c 45 5f 44 45 56 49 43 INK,..FILE_DEVIC
04a0: 45 5f 44 46 53 2c 0a 09 46 49 4c 45 5f 44 45 56 E_DFS,..FILE_DEV
04b0: 49 43 45 5f 44 49 53 4b 2c 0a 09 46 49 4c 45 5f ICE_DISK,..FILE_
04c0: 44 45 56 49 43 45 5f 44 49 53 4b 5f 46 49 4c 45 DEVICE_DISK_FILE
04d0: 5f 53 59 53 54 45 4d 2c 0a 09 46 49 4c 45 5f 44 _SYSTEM,..FILE_D
04e0: 45 56 49 43 45 5f 46 49 4c 45 5f 53 59 53 54 45 EVICE_FILE_SYSTE
04f0: 4d 2c 0a 09 46 49 4c 45 5f 44 45 56 49 43 45 5f M,..FILE_DEVICE_
0500: 49 4e 50 4f 52 54 5f 50 4f 52 54 2c 0a 09 46 49 INPORT_PORT,..FI
0510: 4c 45 5f 44 45 56 49 43 45 5f 4b 45 59 42 4f 41 LE_DEVICE_KEYBOA
0520: 52 44 2c 0a 09 46 49 4c 45 5f 44 45 56 49 43 45 RD,..FILE_DEVICE
0530: 5f 4d 41 49 4c 53 4c 4f 54 2c 0a 09 46 49 4c 45 _MAILSLOT,..FILE
0540: 5f 44 45 56 49 43 45 5f 4d 49 44 49 5f 49 4e 2c _DEVICE_MIDI_IN,
0550: 0a 09 46 49 4c 45 5f 44 45 56 49 43 45 5f 4d 49 ..FILE_DEVICE_MI
0560: 44 49 5f 4f 55 54 2c 0a 09 46 49 4c 45 5f 44 45 DI_OUT,..FILE_DE
0570: 56 49 43 45 5f 4d 4f 55 53 45 2c 0a 09 46 49 4c VICE_MOUSE,..FIL
0580: 45 5f 44 45 56 49 43 45 5f 4d 55 4c 54 49 5f 55 E_DEVICE_MULTI_U
0590: 4e 43 5f 50 52 4f 56 49 44 45 52 2c 0a 09 46 49 NC_PROVIDER,..FI
05a0: 4c 45 5f 44 45 56 49 43 45 5f 4e 41 4d 45 44 5f LE_DEVICE_NAMED_
05b0: 50 49 50 45 2c 0a 09 46 49 4c 45 5f 44 45 56 49 PIPE,..FILE_DEVI
05c0: 43 45 5f 4e 45 54 57 4f 52 4b 2c 0a 09 46 49 4c CE_NETWORK,..FIL
05d0: 45 5f 44 45 56 49 43 45 5f 4e 45 54 57 4f 52 4b E_DEVICE_NETWORK
05e0: 5f 42 52 4f 57 53 45 52 2c 0a 09 46 49 4c 45 5f _BROWSER,..FILE_
05f0: 44 45 56 49 43 45 5f 4e 45 54 57 4f 52 4b 5f 46 DEVICE_NETWORK_F
0600: 49 4c 45 5f 53 59 53 54 45 4d 2c 0a 09 46 49 4c ILE_SYSTEM,..FIL
0610: 45 5f 44 45 56 49 43 45 5f 4e 55 4c 4c 2c 0a 09 E_DEVICE_NULL,..
0620: 46 49 4c 45 5f 44 45 56 49 43 45 5f 50 41 52 41 FILE_DEVICE_PARA
0630: 4c 4c 45 4c 5f 50 4f 52 54 2c 0a 09 46 49 4c 45 LLEL_PORT,..FILE
0640: 5f 44 45 56 49 43 45 5f 50 48 59 53 49 43 41 4c _DEVICE_PHYSICAL
0650: 5f 4e 45 54 43 41 52 44 2c 0a 09 46 49 4c 45 5f _NETCARD,..FILE_
0660: 44 45 56 49 43 45 5f 50 52 49 4e 54 45 52 2c 0a DEVICE_PRINTER,.
0670: 09 46 49 4c 45 5f 44 45 56 49 43 45 5f 53 43 41 .FILE_DEVICE_SCA
0680: 4e 4e 45 52 2c 0a 09 46 49 4c 45 5f 44 45 56 49 NNER,..FILE_DEVI
0690: 43 45 5f 53 45 52 49 41 4c 5f 4d 4f 55 53 45 5f CE_SERIAL_MOUSE_
06a0: 50 4f 52 54 2c 0a 09 46 49 4c 45 5f 44 45 56 49 PORT,..FILE_DEVI
06b0: 43 45 5f 53 45 52 49 41 4c 5f 50 4f 52 54 2c 0a CE_SERIAL_PORT,.
06c0: 09 46 49 4c 45 5f 44 45 56 49 43 45 5f 53 43 52 .FILE_DEVICE_SCR
06d0: 45 45 4e 2c 0a 09 46 49 4c 45 5f 44 45 56 49 43 EEN,..FILE_DEVIC
06e0: 45 5f 53 4f 55 4e 44 2c 0a 09 46 49 4c 45 5f 44 E_SOUND,..FILE_D
06f0: 45 56 49 43 45 5f 53 54 52 45 41 4d 53 2c 0a 09 EVICE_STREAMS,..
0700: 46 49 4c 45 5f 44 45 56 49 43 45 5f 54 41 50 45 FILE_DEVICE_TAPE
0710: 2c 0a 09 46 49 4c 45 5f 44 45 56 49 43 45 5f 54 ,..FILE_DEVICE_T
0720: 41 50 45 5f 46 49 4c 45 5f 53 59 53 54 45 4d 2c APE_FILE_SYSTEM,
0730: 0a 09 46 49 4c 45 5f 44 45 56 49 43 45 5f 54 52 ..FILE_DEVICE_TR
0740: 41 4e 53 50 4f 52 54 2c 0a 09 46 49 4c 45 5f 44 ANSPORT,..FILE_D
0750: 45 56 49 43 45 5f 55 4e 4b 4e 4f 57 4e 2c 0a 09 EVICE_UNKNOWN,..
0760: 46 49 4c 45 5f 44 45 56 49 43 45 5f 56 49 44 45 FILE_DEVICE_VIDE
0770: 4f 2c 0a 09 46 49 4c 45 5f 44 45 56 49 43 45 5f O,..FILE_DEVICE_
0780: 56 49 52 54 55 41 4c 5f 44 49 53 4b 2c 0a 09 46 VIRTUAL_DISK,..F
0790: 49 4c 45 5f 44 45 56 49 43 45 5f 57 41 56 45 5f ILE_DEVICE_WAVE_
07a0: 49 4e 2c 0a 09 46 49 4c 45 5f 44 45 56 49 43 45 IN,..FILE_DEVICE
07b0: 5f 57 41 56 45 5f 4f 55 54 2c 0a 09 46 49 4c 45 _WAVE_OUT,..FILE
07c0: 5f 44 45 56 49 43 45 5f 38 30 34 32 5f 50 4f 52 _DEVICE_8042_POR
07d0: 54 2c 0a 09 46 49 4c 45 5f 44 45 56 49 43 45 5f T,..FILE_DEVICE_
07e0: 4e 45 54 57 4f 52 4b 5f 52 45 44 49 52 45 43 54 NETWORK_REDIRECT
07f0: 4f 52 2c 0a 09 46 49 4c 45 5f 44 45 56 49 43 45 OR,..FILE_DEVICE
0800: 5f 42 41 54 54 45 52 59 2c 0a 09 46 49 4c 45 5f _BATTERY,..FILE_
0810: 44 45 56 49 43 45 5f 42 55 53 5f 45 58 54 45 4e DEVICE_BUS_EXTEN
0820: 44 45 52 2c 0a 09 46 49 4c 45 5f 44 45 56 49 43 DER,..FILE_DEVIC
0830: 45 5f 4d 4f 44 45 4d 2c 0a 09 46 49 4c 45 5f 44 E_MODEM,..FILE_D
0840: 45 56 49 43 45 5f 56 44 4d 2c 0a 09 46 49 4c 45 EVICE_VDM,..FILE
0850: 5f 44 45 56 49 43 45 5f 4d 41 53 53 5f 53 54 4f _DEVICE_MASS_STO
0860: 52 41 47 45 2c 0a 09 46 49 4c 45 5f 44 45 56 49 RAGE,..FILE_DEVI
0870: 43 45 5f 53 4d 42 2c 0a 09 46 49 4c 45 5f 44 45 CE_SMB,..FILE_DE
0880: 56 49 43 45 5f 4b 53 2c 0a 09 46 49 4c 45 5f 44 VICE_KS,..FILE_D
0890: 45 56 49 43 45 5f 43 48 41 4e 47 45 52 2c 0a 09 EVICE_CHANGER,..
08a0: 46 49 4c 45 5f 44 45 56 49 43 45 5f 53 4d 41 52 FILE_DEVICE_SMAR
08b0: 54 43 41 52 44 2c 0a 09 46 49 4c 45 5f 44 45 56 TCARD,..FILE_DEV
08c0: 49 43 45 5f 41 43 50 49 2c 0a 09 46 49 4c 45 5f ICE_ACPI,..FILE_
08d0: 44 45 56 49 43 45 5f 44 56 44 2c 0a 09 46 49 4c DEVICE_DVD,..FIL
08e0: 45 5f 44 45 56 49 43 45 5f 46 55 4c 4c 53 43 52 E_DEVICE_FULLSCR
08f0: 45 45 4e 5f 56 49 44 45 4f 2c 0a 09 46 49 4c 45 EEN_VIDEO,..FILE
0900: 5f 44 45 56 49 43 45 5f 44 46 53 5f 46 49 4c 45 _DEVICE_DFS_FILE
0910: 5f 53 59 53 54 45 4d 2c 0a 09 46 49 4c 45 5f 44 _SYSTEM,..FILE_D
0920: 45 56 49 43 45 5f 44 46 53 5f 56 4f 4c 55 4d 45 EVICE_DFS_VOLUME
0930: 2c 0a 09 46 49 4c 45 5f 44 45 56 49 43 45 5f 53 ,..FILE_DEVICE_S
0940: 45 52 45 4e 55 4d 2c 0a 09 46 49 4c 45 5f 44 45 ERENUM,..FILE_DE
0950: 56 49 43 45 5f 54 45 52 4d 53 52 56 2c 0a 09 46 VICE_TERMSRV,..F
0960: 49 4c 45 5f 44 45 56 49 43 45 5f 4b 53 45 43 20 ILE_DEVICE_KSEC
0970: 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 3d 20 // =
0980: 35 37 0a 7d 0a 0a 65 6e 75 6d 20 7b 0a 09 4d 45 57.}..enum {..ME
0990: 54 48 4f 44 5f 42 55 46 46 45 52 45 44 2c 0a 09 THOD_BUFFERED,..
09a0: 4d 45 54 48 4f 44 5f 49 4e 5f 44 49 52 45 43 54 METHOD_IN_DIRECT
09b0: 2c 0a 09 4d 45 54 48 4f 44 5f 4f 55 54 5f 44 49 ,..METHOD_OUT_DI
09c0: 52 45 43 54 2c 0a 09 4d 45 54 48 4f 44 5f 4e 45 RECT,..METHOD_NE
09d0: 49 54 48 45 52 0a 7d 0a 0a 65 6e 75 6d 20 7b 0a ITHER.}..enum {.
09e0: 09 46 49 4c 45 5f 41 4e 59 5f 41 43 43 45 53 53 .FILE_ANY_ACCESS
09f0: 2c 0a 09 46 49 4c 45 5f 53 50 45 43 49 41 4c 5f ,..FILE_SPECIAL_
0a00: 41 43 43 45 53 53 20 3d 20 30 2c 0a 09 46 49 4c ACCESS = 0,..FIL
0a10: 45 5f 52 45 41 44 5f 41 43 43 45 53 53 2c 0a 09 E_READ_ACCESS,..
0a20: 46 49 4c 45 5f 57 52 49 54 45 5f 41 43 43 45 53 FILE_WRITE_ACCES
0a30: 53 0a 7d 0a 0a 2f 2a 09 42 69 74 20 70 61 74 74 S.}../*.Bit patt
0a40: 65 72 6e 3a 0a 20 2a 09 74 74 74 74 74 74 74 74 ern:. *.tttttttt
0a50: 20 74 74 74 74 74 74 74 74 20 61 61 66 66 66 66 tttttttt aaffff
0a60: 66 66 20 66 66 66 66 66 66 6d 6d 0a 20 2a 2f 0a ff ffffffmm. */.
0a70: 2f 2b 0a 23 64 65 66 69 6e 65 20 43 54 4c 5f 43 /+.#define CTL_C
0a80: 4f 44 45 28 74 2c 20 66 2c 20 6d 2c 20 61 29 20 ODE(t, f, m, a)
0a90: 28 28 28 74 29 3c 3c 31 36 29 7c 28 28 61 29 3c (((t)<<16)|((a)<
0aa0: 3c 31 34 29 7c 28 28 66 29 3c 3c 32 29 7c 28 6d <14)|((f)<<2)|(m
0ab0: 29 29 0a 2b 2f 0a 0a 74 65 6d 70 6c 61 74 65 20 )).+/..template
0ac0: 43 54 4c 5f 43 4f 44 45 5f 54 28 44 45 56 49 43 CTL_CODE_T(DEVIC
0ad0: 45 5f 54 59 50 45 20 74 2c 20 75 69 6e 74 20 66 E_TYPE t, uint f
0ae0: 2c 20 75 69 6e 74 20 6d 2c 20 75 69 6e 74 20 61 , uint m, uint a
0af0: 29 20 7b 0a 09 63 6f 6e 73 74 20 44 57 4f 52 44 ) {..const DWORD
0b00: 20 43 54 4c 5f 43 4f 44 45 5f 54 20 3d 20 28 74 CTL_CODE_T = (t
0b10: 20 3c 3c 20 31 36 29 20 7c 20 28 61 20 3c 3c 20 << 16) | (a <<
0b20: 31 34 29 20 7c 20 28 66 20 3c 3c 20 32 29 20 7c 14) | (f << 2) |
0b30: 20 6d 3b 0a 7d 0a 0a 44 45 56 49 43 45 5f 54 59 m;.}..DEVICE_TY
0b40: 50 45 20 44 45 56 49 43 45 5f 54 59 50 45 5f 46 PE DEVICE_TYPE_F
0b50: 52 4f 4d 5f 43 54 4c 5f 43 4f 44 45 28 44 57 4f ROM_CTL_CODE(DWO
0b60: 52 44 20 63 29 20 7b 0a 09 72 65 74 75 72 6e 20 RD c) {..return
0b70: 28 63 20 26 20 30 78 46 46 46 46 30 30 30 30 29 (c & 0xFFFF0000)
0b80: 20 3e 3e 20 31 36 3b 0a 7d 0a 0a 63 6f 6e 73 74 >> 16;.}..const
0b90: 20 44 45 56 49 43 45 5f 54 59 50 45 0a 09 49 4f DEVICE_TYPE..IO
0ba0: 43 54 4c 5f 53 54 4f 52 41 47 45 5f 42 41 53 45 CTL_STORAGE_BASE
0bb0: 20 3d 20 46 49 4c 45 5f 44 45 56 49 43 45 5f 4d = FILE_DEVICE_M
0bc0: 41 53 53 5f 53 54 4f 52 41 47 45 2c 0a 09 49 4f ASS_STORAGE,..IO
0bd0: 43 54 4c 5f 44 49 53 4b 5f 42 41 53 45 20 20 20 CTL_DISK_BASE
0be0: 20 3d 20 46 49 4c 45 5f 44 45 56 49 43 45 5f 44 = FILE_DEVICE_D
0bf0: 49 53 4b 2c 0a 09 49 4f 43 54 4c 5f 56 4f 4c 55 ISK,..IOCTL_VOLU
0c00: 4d 45 5f 42 41 53 45 20 20 3d 20 27 56 27 3b 0a ME_BASE = 'V';.
0c10: 0a 65 6e 75 6d 20 3a 20 44 57 4f 52 44 20 7b 0a .enum : DWORD {.
0c20: 09 49 4f 43 54 4c 5f 53 54 4f 52 41 47 45 5f 43 .IOCTL_STORAGE_C
0c30: 48 45 43 4b 5f 56 45 52 49 46 59 20 20 20 20 20 HECK_VERIFY
0c40: 20 20 20 20 20 20 3d 20 43 54 4c 5f 43 4f 44 45 = CTL_CODE
0c50: 5f 54 21 28 49 4f 43 54 4c 5f 53 54 4f 52 41 47 _T!(IOCTL_STORAG
0c60: 45 5f 42 41 53 45 2c 20 30 78 30 32 30 30 2c 20 E_BASE, 0x0200,
0c70: 4d 45 54 48 4f 44 5f 42 55 46 46 45 52 45 44 2c METHOD_BUFFERED,
0c80: 20 46 49 4c 45 5f 52 45 41 44 5f 41 43 43 45 53 FILE_READ_ACCES
0c90: 53 29 2c 0a 09 49 4f 43 54 4c 5f 53 54 4f 52 41 S),..IOCTL_STORA
0ca0: 47 45 5f 43 48 45 43 4b 5f 56 45 52 49 46 59 32 GE_CHECK_VERIFY2
0cb0: 20 20 20 20 20 20 20 20 20 20 3d 20 43 54 4c 5f = CTL_
0cc0: 43 4f 44 45 5f 54 21 28 49 4f 43 54 4c 5f 53 54 CODE_T!(IOCTL_ST
0cd0: 4f 52 41 47 45 5f 42 41 53 45 2c 20 30 78 30 32 ORAGE_BASE, 0x02
0ce0: 30 30 2c 20 4d 45 54 48 4f 44 5f 42 55 46 46 45 00, METHOD_BUFFE
0cf0: 52 45 44 2c 20 46 49 4c 45 5f 41 4e 59 5f 41 43 RED, FILE_ANY_AC
0d00: 43 45 53 53 29 2c 0a 09 49 4f 43 54 4c 5f 53 54 CESS),..IOCTL_ST
0d10: 4f 52 41 47 45 5f 4d 45 44 49 41 5f 52 45 4d 4f ORAGE_MEDIA_REMO
0d20: 56 41 4c 20 20 20 20 20 20 20 20 20 20 3d 20 43 VAL = C
0d30: 54 4c 5f 43 4f 44 45 5f 54 21 28 49 4f 43 54 4c TL_CODE_T!(IOCTL
0d40: 5f 53 54 4f 52 41 47 45 5f 42 41 53 45 2c 20 30 _STORAGE_BASE, 0
0d50: 78 30 32 30 31 2c 20 4d 45 54 48 4f 44 5f 42 55 x0201, METHOD_BU
0d60: 46 46 45 52 45 44 2c 20 46 49 4c 45 5f 52 45 41 FFERED, FILE_REA
0d70: 44 5f 41 43 43 45 53 53 29 2c 0a 09 49 4f 43 54 D_ACCESS),..IOCT
0d80: 4c 5f 53 54 4f 52 41 47 45 5f 45 4a 45 43 54 5f L_STORAGE_EJECT_
0d90: 4d 45 44 49 41 20 20 20 20 20 20 20 20 20 20 20 MEDIA
0da0: 20 3d 20 43 54 4c 5f 43 4f 44 45 5f 54 21 28 49 = CTL_CODE_T!(I
0db0: 4f 43 54 4c 5f 53 54 4f 52 41 47 45 5f 42 41 53 OCTL_STORAGE_BAS
0dc0: 45 2c 20 30 78 30 32 30 32 2c 20 4d 45 54 48 4f E, 0x0202, METHO
0dd0: 44 5f 42 55 46 46 45 52 45 44 2c 20 46 49 4c 45 D_BUFFERED, FILE
0de0: 5f 52 45 41 44 5f 41 43 43 45 53 53 29 2c 0a 09 _READ_ACCESS),..
0df0: 49 4f 43 54 4c 5f 53 54 4f 52 41 47 45 5f 4c 4f IOCTL_STORAGE_LO
0e00: 41 44 5f 4d 45 44 49 41 20 20 20 20 20 20 20 20 AD_MEDIA
0e10: 20 20 20 20 20 3d 20 43 54 4c 5f 43 4f 44 45 5f = CTL_CODE_
0e20: 54 21 28 49 4f 43 54 4c 5f 53 54 4f 52 41 47 45 T!(IOCTL_STORAGE
0e30: 5f 42 41 53 45 2c 20 30 78 30 32 30 33 2c 20 4d _BASE, 0x0203, M
0e40: 45 54 48 4f 44 5f 42 55 46 46 45 52 45 44 2c 20 ETHOD_BUFFERED,
0e50: 46 49 4c 45 5f 52 45 41 44 5f 41 43 43 45 53 53 FILE_READ_ACCESS
0e60: 29 2c 0a 09 49 4f 43 54 4c 5f 53 54 4f 52 41 47 ),..IOCTL_STORAG
0e70: 45 5f 4c 4f 41 44 5f 4d 45 44 49 41 32 20 20 20 E_LOAD_MEDIA2
0e80: 20 20 20 20 20 20 20 20 20 3d 20 43 54 4c 5f 43 = CTL_C
0e90: 4f 44 45 5f 54 21 28 49 4f 43 54 4c 5f 53 54 4f ODE_T!(IOCTL_STO
0ea0: 52 41 47 45 5f 42 41 53 45 2c 20 30 78 30 32 30 RAGE_BASE, 0x020
0eb0: 33 2c 20 4d 45 54 48 4f 44 5f 42 55 46 46 45 52 3, METHOD_BUFFER
0ec0: 45 44 2c 20 46 49 4c 45 5f 41 4e 59 5f 41 43 43 ED, FILE_ANY_ACC
0ed0: 45 53 53 29 2c 0a 09 49 4f 43 54 4c 5f 53 54 4f ESS),..IOCTL_STO
0ee0: 52 41 47 45 5f 52 45 53 45 52 56 45 20 20 20 20 RAGE_RESERVE
0ef0: 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 43 54 = CT
0f00: 4c 5f 43 4f 44 45 5f 54 21 28 49 4f 43 54 4c 5f L_CODE_T!(IOCTL_
0f10: 53 54 4f 52 41 47 45 5f 42 41 53 45 2c 20 30 78 STORAGE_BASE, 0x
0f20: 30 32 30 34 2c 20 4d 45 54 48 4f 44 5f 42 55 46 0204, METHOD_BUF
0f30: 46 45 52 45 44 2c 20 46 49 4c 45 5f 52 45 41 44 FERED, FILE_READ
0f40: 5f 41 43 43 45 53 53 29 2c 0a 09 49 4f 43 54 4c _ACCESS),..IOCTL
0f50: 5f 53 54 4f 52 41 47 45 5f 52 45 4c 45 41 53 45 _STORAGE_RELEASE
0f60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0f70: 3d 20 43 54 4c 5f 43 4f 44 45 5f 54 21 28 49 4f = CTL_CODE_T!(IO
0f80: 43 54 4c 5f 53 54 4f 52 41 47 45 5f 42 41 53 45 CTL_STORAGE_BASE
0f90: 2c 20 30 78 30 32 30 35 2c 20 4d 45 54 48 4f 44 , 0x0205, METHOD
0fa0: 5f 42 55 46 46 45 52 45 44 2c 20 46 49 4c 45 5f _BUFFERED, FILE_
0fb0: 52 45 41 44 5f 41 43 43 45 53 53 29 2c 0a 09 49 READ_ACCESS),..I
0fc0: 4f 43 54 4c 5f 53 54 4f 52 41 47 45 5f 46 49 4e OCTL_STORAGE_FIN
0fd0: 44 5f 4e 45 57 5f 44 45 56 49 43 45 53 20 20 20 D_NEW_DEVICES
0fe0: 20 20 20 20 3d 20 43 54 4c 5f 43 4f 44 45 5f 54 = CTL_CODE_T
0ff0: 21 28 49 4f 43 54 4c 5f 53 54 4f 52 41 47 45 5f !(IOCTL_STORAGE_
1000: 42 41 53 45 2c 20 30 78 30 32 30 36 2c 20 4d 45 BASE, 0x0206, ME
1010: 54 48 4f 44 5f 42 55 46 46 45 52 45 44 2c 20 46 THOD_BUFFERED, F
1020: 49 4c 45 5f 52 45 41 44 5f 41 43 43 45 53 53 29 ILE_READ_ACCESS)
1030: 2c 0a 09 49 4f 43 54 4c 5f 53 54 4f 52 41 47 45 ,..IOCTL_STORAGE
1040: 5f 45 4a 45 43 54 49 4f 4e 5f 43 4f 4e 54 52 4f _EJECTION_CONTRO
1050: 4c 20 20 20 20 20 20 20 3d 20 43 54 4c 5f 43 4f L = CTL_CO
1060: 44 45 5f 54 21 28 49 4f 43 54 4c 5f 53 54 4f 52 DE_T!(IOCTL_STOR
1070: 41 47 45 5f 42 41 53 45 2c 20 30 78 30 32 35 30 AGE_BASE, 0x0250
1080: 2c 20 4d 45 54 48 4f 44 5f 42 55 46 46 45 52 45 , METHOD_BUFFERE
1090: 44 2c 20 46 49 4c 45 5f 41 4e 59 5f 41 43 43 45 D, FILE_ANY_ACCE
10a0: 53 53 29 2c 0a 09 49 4f 43 54 4c 5f 53 54 4f 52 SS),..IOCTL_STOR
10b0: 41 47 45 5f 4d 43 4e 5f 43 4f 4e 54 52 4f 4c 20 AGE_MCN_CONTROL
10c0: 20 20 20 20 20 20 20 20 20 20 20 3d 20 43 54 4c = CTL
10d0: 5f 43 4f 44 45 5f 54 21 28 49 4f 43 54 4c 5f 53 _CODE_T!(IOCTL_S
10e0: 54 4f 52 41 47 45 5f 42 41 53 45 2c 20 30 78 30 TORAGE_BASE, 0x0
10f0: 32 35 31 2c 20 4d 45 54 48 4f 44 5f 42 55 46 46 251, METHOD_BUFF
1100: 45 52 45 44 2c 20 46 49 4c 45 5f 41 4e 59 5f 41 ERED, FILE_ANY_A
1110: 43 43 45 53 53 29 2c 0a 09 49 4f 43 54 4c 5f 53 CCESS),..IOCTL_S
1120: 54 4f 52 41 47 45 5f 47 45 54 5f 4d 45 44 49 41 TORAGE_GET_MEDIA
1130: 5f 54 59 50 45 53 20 20 20 20 20 20 20 20 3d 20 _TYPES =
1140: 43 54 4c 5f 43 4f 44 45 5f 54 21 28 49 4f 43 54 CTL_CODE_T!(IOCT
1150: 4c 5f 53 54 4f 52 41 47 45 5f 42 41 53 45 2c 20 L_STORAGE_BASE,
1160: 30 78 30 33 30 30 2c 20 4d 45 54 48 4f 44 5f 42 0x0300, METHOD_B
1170: 55 46 46 45 52 45 44 2c 20 46 49 4c 45 5f 41 4e UFFERED, FILE_AN
1180: 59 5f 41 43 43 45 53 53 29 2c 0a 09 49 4f 43 54 Y_ACCESS),..IOCT
1190: 4c 5f 53 54 4f 52 41 47 45 5f 47 45 54 5f 4d 45 L_STORAGE_GET_ME
11a0: 44 49 41 5f 54 59 50 45 53 5f 45 58 20 20 20 20 DIA_TYPES_EX
11b0: 20 3d 20 43 54 4c 5f 43 4f 44 45 5f 54 21 28 49 = CTL_CODE_T!(I
11c0: 4f 43 54 4c 5f 53 54 4f 52 41 47 45 5f 42 41 53 OCTL_STORAGE_BAS
11d0: 45 2c 20 30 78 30 33 30 31 2c 20 4d 45 54 48 4f E, 0x0301, METHO
11e0: 44 5f 42 55 46 46 45 52 45 44 2c 20 46 49 4c 45 D_BUFFERED, FILE
11f0: 5f 41 4e 59 5f 41 43 43 45 53 53 29 2c 0a 09 49 _ANY_ACCESS),..I
1200: 4f 43 54 4c 5f 53 54 4f 52 41 47 45 5f 52 45 53 OCTL_STORAGE_RES
1210: 45 54 5f 42 55 53 20 20 20 20 20 20 20 20 20 20 ET_BUS
1220: 20 20 20 20 3d 20 43 54 4c 5f 43 4f 44 45 5f 54 = CTL_CODE_T
1230: 21 28 49 4f 43 54 4c 5f 53 54 4f 52 41 47 45 5f !(IOCTL_STORAGE_
1240: 42 41 53 45 2c 20 30 78 30 34 30 30 2c 20 4d 45 BASE, 0x0400, ME
1250: 54 48 4f 44 5f 42 55 46 46 45 52 45 44 2c 20 46 THOD_BUFFERED, F
1260: 49 4c 45 5f 52 45 41 44 5f 41 43 43 45 53 53 29 ILE_READ_ACCESS)
1270: 2c 0a 09 49 4f 43 54 4c 5f 53 54 4f 52 41 47 45 ,..IOCTL_STORAGE
1280: 5f 52 45 53 45 54 5f 44 45 56 49 43 45 20 20 20 _RESET_DEVICE
1290: 20 20 20 20 20 20 20 20 3d 20 43 54 4c 5f 43 4f = CTL_CO
12a0: 44 45 5f 54 21 28 49 4f 43 54 4c 5f 53 54 4f 52 DE_T!(IOCTL_STOR
12b0: 41 47 45 5f 42 41 53 45 2c 20 30 78 30 34 30 31 AGE_BASE, 0x0401
12c0: 2c 20 4d 45 54 48 4f 44 5f 42 55 46 46 45 52 45 , METHOD_BUFFERE
12d0: 44 2c 20 46 49 4c 45 5f 52 45 41 44 5f 41 43 43 D, FILE_READ_ACC
12e0: 45 53 53 29 2c 0a 09 49 4f 43 54 4c 5f 53 54 4f ESS),..IOCTL_STO
12f0: 52 41 47 45 5f 47 45 54 5f 44 45 56 49 43 45 5f RAGE_GET_DEVICE_
1300: 4e 55 4d 42 45 52 20 20 20 20 20 20 3d 20 43 54 NUMBER = CT
1310: 4c 5f 43 4f 44 45 5f 54 21 28 49 4f 43 54 4c 5f L_CODE_T!(IOCTL_
1320: 53 54 4f 52 41 47 45 5f 42 41 53 45 2c 20 30 78 STORAGE_BASE, 0x
1330: 30 34 32 30 2c 20 4d 45 54 48 4f 44 5f 42 55 46 0420, METHOD_BUF
1340: 46 45 52 45 44 2c 20 46 49 4c 45 5f 41 4e 59 5f FERED, FILE_ANY_
1350: 41 43 43 45 53 53 29 2c 0a 09 49 4f 43 54 4c 5f ACCESS),..IOCTL_
1360: 53 54 4f 52 41 47 45 5f 50 52 45 44 49 43 54 5f STORAGE_PREDICT_
1370: 46 41 49 4c 55 52 45 20 20 20 20 20 20 20 20 3d FAILURE =
1380: 20 43 54 4c 5f 43 4f 44 45 5f 54 21 28 49 4f 43 CTL_CODE_T!(IOC
1390: 54 4c 5f 53 54 4f 52 41 47 45 5f 42 41 53 45 2c TL_STORAGE_BASE,
13a0: 20 30 78 30 34 34 30 2c 20 4d 45 54 48 4f 44 5f 0x0440, METHOD_
13b0: 42 55 46 46 45 52 45 44 2c 20 46 49 4c 45 5f 41 BUFFERED, FILE_A
13c0: 4e 59 5f 41 43 43 45 53 53 29 2c 0a 0a 09 49 4f NY_ACCESS),...IO
13d0: 43 54 4c 5f 44 49 53 4b 5f 47 45 54 5f 44 52 49 CTL_DISK_GET_DRI
13e0: 56 45 5f 47 45 4f 4d 45 54 52 59 20 20 20 20 20 VE_GEOMETRY
13f0: 20 20 20 3d 20 43 54 4c 5f 43 4f 44 45 5f 54 21 = CTL_CODE_T!
1400: 28 49 4f 43 54 4c 5f 44 49 53 4b 5f 42 41 53 45 (IOCTL_DISK_BASE
1410: 2c 20 30 2c 20 4d 45 54 48 4f 44 5f 42 55 46 46 , 0, METHOD_BUFF
1420: 45 52 45 44 2c 20 46 49 4c 45 5f 41 4e 59 5f 41 ERED, FILE_ANY_A
1430: 43 43 45 53 53 29 2c 0a 09 49 4f 43 54 4c 5f 44 CCESS),..IOCTL_D
1440: 49 53 4b 5f 47 45 54 5f 50 41 52 54 49 54 49 4f ISK_GET_PARTITIO
1450: 4e 5f 49 4e 46 4f 20 20 20 20 20 20 20 20 3d 20 N_INFO =
1460: 43 54 4c 5f 43 4f 44 45 5f 54 21 28 49 4f 43 54 CTL_CODE_T!(IOCT
1470: 4c 5f 44 49 53 4b 5f 42 41 53 45 2c 20 31 2c 20 L_DISK_BASE, 1,
1480: 4d 45 54 48 4f 44 5f 42 55 46 46 45 52 45 44 2c METHOD_BUFFERED,
1490: 20 46 49 4c 45 5f 52 45 41 44 5f 41 43 43 45 53 FILE_READ_ACCES
14a0: 53 29 2c 0a 09 49 4f 43 54 4c 5f 44 49 53 4b 5f S),..IOCTL_DISK_
14b0: 53 45 54 5f 50 41 52 54 49 54 49 4f 4e 5f 49 4e SET_PARTITION_IN
14c0: 46 4f 20 20 20 20 20 20 20 20 3d 20 43 54 4c 5f FO = CTL_
14d0: 43 4f 44 45 5f 54 21 28 49 4f 43 54 4c 5f 44 49 CODE_T!(IOCTL_DI
14e0: 53 4b 5f 42 41 53 45 2c 20 32 2c 20 4d 45 54 48 SK_BASE, 2, METH
14f0: 4f 44 5f 42 55 46 46 45 52 45 44 2c 20 46 49 4c OD_BUFFERED, FIL
1500: 45 5f 52 45 41 44 5f 41 43 43 45 53 53 7c 46 49 E_READ_ACCESS|FI
1510: 4c 45 5f 57 52 49 54 45 5f 41 43 43 45 53 53 29 LE_WRITE_ACCESS)
1520: 2c 0a 09 49 4f 43 54 4c 5f 44 49 53 4b 5f 47 45 ,..IOCTL_DISK_GE
1530: 54 5f 44 52 49 56 45 5f 4c 41 59 4f 55 54 20 20 T_DRIVE_LAYOUT
1540: 20 20 20 20 20 20 20 20 3d 20 43 54 4c 5f 43 4f = CTL_CO
1550: 44 45 5f 54 21 28 49 4f 43 54 4c 5f 44 49 53 4b DE_T!(IOCTL_DISK
1560: 5f 42 41 53 45 2c 20 33 2c 20 4d 45 54 48 4f 44 _BASE, 3, METHOD
1570: 5f 42 55 46 46 45 52 45 44 2c 20 46 49 4c 45 5f _BUFFERED, FILE_
1580: 52 45 41 44 5f 41 43 43 45 53 53 29 2c 0a 09 49 READ_ACCESS),..I
1590: 4f 43 54 4c 5f 44 49 53 4b 5f 53 45 54 5f 44 52 OCTL_DISK_SET_DR
15a0: 49 56 45 5f 4c 41 59 4f 55 54 20 20 20 20 20 20 IVE_LAYOUT
15b0: 20 20 20 20 3d 20 43 54 4c 5f 43 4f 44 45 5f 54 = CTL_CODE_T
15c0: 21 28 49 4f 43 54 4c 5f 44 49 53 4b 5f 42 41 53 !(IOCTL_DISK_BAS
15d0: 45 2c 20 34 2c 20 4d 45 54 48 4f 44 5f 42 55 46 E, 4, METHOD_BUF
15e0: 46 45 52 45 44 2c 20 46 49 4c 45 5f 52 45 41 44 FERED, FILE_READ
15f0: 5f 41 43 43 45 53 53 7c 46 49 4c 45 5f 57 52 49 _ACCESS|FILE_WRI
1600: 54 45 5f 41 43 43 45 53 53 29 2c 0a 09 49 4f 43 TE_ACCESS),..IOC
1610: 54 4c 5f 44 49 53 4b 5f 56 45 52 49 46 59 20 20 TL_DISK_VERIFY
1620: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1630: 20 20 3d 20 43 54 4c 5f 43 4f 44 45 5f 54 21 28 = CTL_CODE_T!(
1640: 49 4f 43 54 4c 5f 44 49 53 4b 5f 42 41 53 45 2c IOCTL_DISK_BASE,
1650: 20 35 2c 20 4d 45 54 48 4f 44 5f 42 55 46 46 45 5, METHOD_BUFFE
1660: 52 45 44 2c 20 46 49 4c 45 5f 41 4e 59 5f 41 43 RED, FILE_ANY_AC
1670: 43 45 53 53 29 2c 0a 09 49 4f 43 54 4c 5f 44 49 CESS),..IOCTL_DI
1680: 53 4b 5f 46 4f 52 4d 41 54 5f 54 52 41 43 4b 53 SK_FORMAT_TRACKS
1690: 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 43 = C
16a0: 54 4c 5f 43 4f 44 45 5f 54 21 28 49 4f 43 54 4c TL_CODE_T!(IOCTL
16b0: 5f 44 49 53 4b 5f 42 41 53 45 2c 20 36 2c 20 4d _DISK_BASE, 6, M
16c0: 45 54 48 4f 44 5f 42 55 46 46 45 52 45 44 2c 20 ETHOD_BUFFERED,
16d0: 46 49 4c 45 5f 52 45 41 44 5f 41 43 43 45 53 53 FILE_READ_ACCESS
16e0: 7c 46 49 4c 45 5f 57 52 49 54 45 5f 41 43 43 45 |FILE_WRITE_ACCE
16f0: 53 53 29 2c 0a 09 49 4f 43 54 4c 5f 44 49 53 4b SS),..IOCTL_DISK
1700: 5f 52 45 41 53 53 49 47 4e 5f 42 4c 4f 43 4b 53 _REASSIGN_BLOCKS
1710: 20 20 20 20 20 20 20 20 20 20 20 3d 20 43 54 4c = CTL
1720: 5f 43 4f 44 45 5f 54 21 28 49 4f 43 54 4c 5f 44 _CODE_T!(IOCTL_D
1730: 49 53 4b 5f 42 41 53 45 2c 20 37 2c 20 4d 45 54 ISK_BASE, 7, MET
1740: 48 4f 44 5f 42 55 46 46 45 52 45 44 2c 20 46 49 HOD_BUFFERED, FI
1750: 4c 45 5f 52 45 41 44 5f 41 43 43 45 53 53 7c 46 LE_READ_ACCESS|F
1760: 49 4c 45 5f 57 52 49 54 45 5f 41 43 43 45 53 53 ILE_WRITE_ACCESS
1770: 29 2c 0a 09 49 4f 43 54 4c 5f 44 49 53 4b 5f 50 ),..IOCTL_DISK_P
1780: 45 52 46 4f 52 4d 41 4e 43 45 20 20 20 20 20 20 ERFORMANCE
1790: 20 20 20 20 20 20 20 20 20 3d 20 43 54 4c 5f 43 = CTL_C
17a0: 4f 44 45 5f 54 21 28 49 4f 43 54 4c 5f 44 49 53 ODE_T!(IOCTL_DIS
17b0: 4b 5f 42 41 53 45 2c 20 38 2c 20 4d 45 54 48 4f K_BASE, 8, METHO
17c0: 44 5f 42 55 46 46 45 52 45 44 2c 20 46 49 4c 45 D_BUFFERED, FILE
17d0: 5f 41 4e 59 5f 41 43 43 45 53 53 29 2c 0a 09 49 _ANY_ACCESS),..I
17e0: 4f 43 54 4c 5f 44 49 53 4b 5f 49 53 5f 57 52 49 OCTL_DISK_IS_WRI
17f0: 54 41 42 4c 45 20 20 20 20 20 20 20 20 20 20 20 TABLE
1800: 20 20 20 20 3d 20 43 54 4c 5f 43 4f 44 45 5f 54 = CTL_CODE_T
1810: 21 28 49 4f 43 54 4c 5f 44 49 53 4b 5f 42 41 53 !(IOCTL_DISK_BAS
1820: 45 2c 20 39 2c 20 4d 45 54 48 4f 44 5f 42 55 46 E, 9, METHOD_BUF
1830: 46 45 52 45 44 2c 20 46 49 4c 45 5f 41 4e 59 5f FERED, FILE_ANY_
1840: 41 43 43 45 53 53 29 2c 0a 09 49 4f 43 54 4c 5f ACCESS),..IOCTL_
1850: 44 49 53 4b 5f 4c 4f 47 47 49 4e 47 20 20 20 20 DISK_LOGGING
1860: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d =
1870: 20 43 54 4c 5f 43 4f 44 45 5f 54 21 28 49 4f 43 CTL_CODE_T!(IOC
1880: 54 4c 5f 44 49 53 4b 5f 42 41 53 45 2c 20 31 30 TL_DISK_BASE, 10
1890: 2c 20 4d 45 54 48 4f 44 5f 42 55 46 46 45 52 45 , METHOD_BUFFERE
18a0: 44 2c 20 46 49 4c 45 5f 41 4e 59 5f 41 43 43 45 D, FILE_ANY_ACCE
18b0: 53 53 29 2c 0a 09 49 4f 43 54 4c 5f 44 49 53 4b SS),..IOCTL_DISK
18c0: 5f 46 4f 52 4d 41 54 5f 54 52 41 43 4b 53 5f 45 _FORMAT_TRACKS_E
18d0: 58 20 20 20 20 20 20 20 20 20 20 3d 20 43 54 4c X = CTL
18e0: 5f 43 4f 44 45 5f 54 21 28 49 4f 43 54 4c 5f 44 _CODE_T!(IOCTL_D
18f0: 49 53 4b 5f 42 41 53 45 2c 20 31 31 2c 20 4d 45 ISK_BASE, 11, ME
1900: 54 48 4f 44 5f 42 55 46 46 45 52 45 44 2c 20 46 THOD_BUFFERED, F
1910: 49 4c 45 5f 52 45 41 44 5f 41 43 43 45 53 53 7c ILE_READ_ACCESS|
1920: 46 49 4c 45 5f 57 52 49 54 45 5f 41 43 43 45 53 FILE_WRITE_ACCES
1930: 53 29 2c 0a 09 49 4f 43 54 4c 5f 44 49 53 4b 5f S),..IOCTL_DISK_
1940: 48 49 53 54 4f 47 52 41 4d 5f 53 54 52 55 43 54 HISTOGRAM_STRUCT
1950: 55 52 45 20 20 20 20 20 20 20 3d 20 43 54 4c 5f URE = CTL_
1960: 43 4f 44 45 5f 54 21 28 49 4f 43 54 4c 5f 44 49 CODE_T!(IOCTL_DI
1970: 53 4b 5f 42 41 53 45 2c 20 31 32 2c 20 4d 45 54 SK_BASE, 12, MET
1980: 48 4f 44 5f 42 55 46 46 45 52 45 44 2c 20 46 49 HOD_BUFFERED, FI
1990: 4c 45 5f 41 4e 59 5f 41 43 43 45 53 53 29 2c 0a LE_ANY_ACCESS),.
19a0: 09 49 4f 43 54 4c 5f 44 49 53 4b 5f 48 49 53 54 .IOCTL_DISK_HIST
19b0: 4f 47 52 41 4d 5f 44 41 54 41 20 20 20 20 20 20 OGRAM_DATA
19c0: 20 20 20 20 20 20 3d 20 43 54 4c 5f 43 4f 44 45 = CTL_CODE
19d0: 5f 54 21 28 49 4f 43 54 4c 5f 44 49 53 4b 5f 42 _T!(IOCTL_DISK_B
19e0: 41 53 45 2c 20 31 33 2c 20 4d 45 54 48 4f 44 5f ASE, 13, METHOD_
19f0: 42 55 46 46 45 52 45 44 2c 20 46 49 4c 45 5f 41 BUFFERED, FILE_A
1a00: 4e 59 5f 41 43 43 45 53 53 29 2c 0a 09 49 4f 43 NY_ACCESS),..IOC
1a10: 54 4c 5f 44 49 53 4b 5f 48 49 53 54 4f 47 52 41 TL_DISK_HISTOGRA
1a20: 4d 5f 52 45 53 45 54 20 20 20 20 20 20 20 20 20 M_RESET
1a30: 20 20 3d 20 43 54 4c 5f 43 4f 44 45 5f 54 21 28 = CTL_CODE_T!(
1a40: 49 4f 43 54 4c 5f 44 49 53 4b 5f 42 41 53 45 2c IOCTL_DISK_BASE,
1a50: 20 31 34 2c 20 4d 45 54 48 4f 44 5f 42 55 46 46 14, METHOD_BUFF
1a60: 45 52 45 44 2c 20 46 49 4c 45 5f 41 4e 59 5f 41 ERED, FILE_ANY_A
1a70: 43 43 45 53 53 29 2c 0a 09 49 4f 43 54 4c 5f 44 CCESS),..IOCTL_D
1a80: 49 53 4b 5f 52 45 51 55 45 53 54 5f 53 54 52 55 ISK_REQUEST_STRU
1a90: 43 54 55 52 45 20 20 20 20 20 20 20 20 20 3d 20 CTURE =
1aa0: 43 54 4c 5f 43 4f 44 45 5f 54 21 28 49 4f 43 54 CTL_CODE_T!(IOCT
1ab0: 4c 5f 44 49 53 4b 5f 42 41 53 45 2c 20 31 35 2c L_DISK_BASE, 15,
1ac0: 20 4d 45 54 48 4f 44 5f 42 55 46 46 45 52 45 44 METHOD_BUFFERED
1ad0: 2c 20 46 49 4c 45 5f 41 4e 59 5f 41 43 43 45 53 , FILE_ANY_ACCES
1ae0: 53 29 2c 0a 09 49 4f 43 54 4c 5f 44 49 53 4b 5f S),..IOCTL_DISK_
1af0: 52 45 51 55 45 53 54 5f 44 41 54 41 20 20 20 20 REQUEST_DATA
1b00: 20 20 20 20 20 20 20 20 20 20 3d 20 43 54 4c 5f = CTL_
1b10: 43 4f 44 45 5f 54 21 28 49 4f 43 54 4c 5f 44 49 CODE_T!(IOCTL_DI
1b20: 53 4b 5f 42 41 53 45 2c 20 31 36 2c 20 4d 45 54 SK_BASE, 16, MET
1b30: 48 4f 44 5f 42 55 46 46 45 52 45 44 2c 20 46 49 HOD_BUFFERED, FI
1b40: 4c 45 5f 41 4e 59 5f 41 43 43 45 53 53 29 2c 0a LE_ANY_ACCESS),.
1b50: 09 49 4f 43 54 4c 5f 44 49 53 4b 5f 47 45 54 5f .IOCTL_DISK_GET_
1b60: 50 41 52 54 49 54 49 4f 4e 5f 49 4e 46 4f 5f 45 PARTITION_INFO_E
1b70: 58 20 20 20 20 20 3d 20 43 54 4c 5f 43 4f 44 45 X = CTL_CODE
1b80: 5f 54 21 28 49 4f 43 54 4c 5f 44 49 53 4b 5f 42 _T!(IOCTL_DISK_B
1b90: 41 53 45 2c 20 30 78 31 32 2c 20 4d 45 54 48 4f ASE, 0x12, METHO
1ba0: 44 5f 42 55 46 46 45 52 45 44 2c 20 46 49 4c 45 D_BUFFERED, FILE
1bb0: 5f 41 4e 59 5f 41 43 43 45 53 53 29 2c 0a 09 49 _ANY_ACCESS),..I
1bc0: 4f 43 54 4c 5f 44 49 53 4b 5f 53 45 54 5f 50 41 OCTL_DISK_SET_PA
1bd0: 52 54 49 54 49 4f 4e 5f 49 4e 46 4f 5f 45 58 20 RTITION_INFO_EX
1be0: 20 20 20 20 3d 20 43 54 4c 5f 43 4f 44 45 5f 54 = CTL_CODE_T
1bf0: 21 28 49 4f 43 54 4c 5f 44 49 53 4b 5f 42 41 53 !(IOCTL_DISK_BAS
1c00: 45 2c 20 30 78 31 33 2c 20 4d 45 54 48 4f 44 5f E, 0x13, METHOD_
1c10: 42 55 46 46 45 52 45 44 2c 20 46 49 4c 45 5f 52 BUFFERED, FILE_R
1c20: 45 41 44 5f 41 43 43 45 53 53 20 7c 20 46 49 4c EAD_ACCESS | FIL
1c30: 45 5f 57 52 49 54 45 5f 41 43 43 45 53 53 29 2c E_WRITE_ACCESS),
1c40: 0a 09 49 4f 43 54 4c 5f 44 49 53 4b 5f 47 45 54 ..IOCTL_DISK_GET
1c50: 5f 44 52 49 56 45 5f 4c 41 59 4f 55 54 5f 45 58 _DRIVE_LAYOUT_EX
1c60: 20 20 20 20 20 20 20 3d 20 43 54 4c 5f 43 4f 44 = CTL_COD
1c70: 45 5f 54 21 28 49 4f 43 54 4c 5f 44 49 53 4b 5f E_T!(IOCTL_DISK_
1c80: 42 41 53 45 2c 20 30 78 31 34 2c 20 4d 45 54 48 BASE, 0x14, METH
1c90: 4f 44 5f 42 55 46 46 45 52 45 44 2c 20 46 49 4c OD_BUFFERED, FIL
1ca0: 45 5f 41 4e 59 5f 41 43 43 45 53 53 29 2c 0a 09 E_ANY_ACCESS),..
1cb0: 49 4f 43 54 4c 5f 44 49 53 4b 5f 53 45 54 5f 44 IOCTL_DISK_SET_D
1cc0: 52 49 56 45 5f 4c 41 59 4f 55 54 5f 45 58 20 20 RIVE_LAYOUT_EX
1cd0: 20 20 20 20 20 3d 20 43 54 4c 5f 43 4f 44 45 5f = CTL_CODE_
1ce0: 54 21 28 49 4f 43 54 4c 5f 44 49 53 4b 5f 42 41 T!(IOCTL_DISK_BA
1cf0: 53 45 2c 20 30 78 31 35 2c 20 4d 45 54 48 4f 44 SE, 0x15, METHOD
1d00: 5f 42 55 46 46 45 52 45 44 2c 20 46 49 4c 45 5f _BUFFERED, FILE_
1d10: 52 45 41 44 5f 41 43 43 45 53 53 20 7c 20 46 49 READ_ACCESS | FI
1d20: 4c 45 5f 57 52 49 54 45 5f 41 43 43 45 53 53 29 LE_WRITE_ACCESS)
1d30: 2c 0a 09 49 4f 43 54 4c 5f 44 49 53 4b 5f 43 52 ,..IOCTL_DISK_CR
1d40: 45 41 54 45 5f 44 49 53 4b 20 20 20 20 20 20 20 EATE_DISK
1d50: 20 20 20 20 20 20 20 20 3d 20 43 54 4c 5f 43 4f = CTL_CO
1d60: 44 45 5f 54 21 28 49 4f 43 54 4c 5f 44 49 53 4b DE_T!(IOCTL_DISK
1d70: 5f 42 41 53 45 2c 20 30 78 31 36 2c 20 4d 45 54 _BASE, 0x16, MET
1d80: 48 4f 44 5f 42 55 46 46 45 52 45 44 2c 20 46 49 HOD_BUFFERED, FI
1d90: 4c 45 5f 52 45 41 44 5f 41 43 43 45 53 53 20 7c LE_READ_ACCESS |
1da0: 20 46 49 4c 45 5f 57 52 49 54 45 5f 41 43 43 45 FILE_WRITE_ACCE
1db0: 53 53 29 2c 0a 09 49 4f 43 54 4c 5f 44 49 53 4b SS),..IOCTL_DISK
1dc0: 5f 47 45 54 5f 4c 45 4e 47 54 48 5f 49 4e 46 4f _GET_LENGTH_INFO
1dd0: 20 20 20 20 20 20 20 20 20 20 20 3d 20 43 54 4c = CTL
1de0: 5f 43 4f 44 45 5f 54 21 28 49 4f 43 54 4c 5f 44 _CODE_T!(IOCTL_D
1df0: 49 53 4b 5f 42 41 53 45 2c 20 30 78 31 37 2c 20 ISK_BASE, 0x17,
1e00: 4d 45 54 48 4f 44 5f 42 55 46 46 45 52 45 44 2c METHOD_BUFFERED,
1e10: 20 46 49 4c 45 5f 52 45 41 44 5f 41 43 43 45 53 FILE_READ_ACCES
1e20: 53 29 2c 0a 09 49 4f 43 54 4c 5f 44 49 53 4b 5f S),..IOCTL_DISK_
1e30: 50 45 52 46 4f 52 4d 41 4e 43 45 5f 4f 46 46 20 PERFORMANCE_OFF
1e40: 20 20 20 20 20 20 20 20 20 20 3d 20 43 54 4c 5f = CTL_
1e50: 43 4f 44 45 5f 54 21 28 49 4f 43 54 4c 5f 44 49 CODE_T!(IOCTL_DI
1e60: 53 4b 5f 42 41 53 45 2c 20 30 78 31 38 2c 20 4d SK_BASE, 0x18, M
1e70: 45 54 48 4f 44 5f 42 55 46 46 45 52 45 44 2c 20 ETHOD_BUFFERED,
1e80: 46 49 4c 45 5f 41 4e 59 5f 41 43 43 45 53 53 29 FILE_ANY_ACCESS)
1e90: 2c 0a 09 49 4f 43 54 4c 5f 44 49 53 4b 5f 47 45 ,..IOCTL_DISK_GE
1ea0: 54 5f 44 52 49 56 45 5f 47 45 4f 4d 45 54 52 59 T_DRIVE_GEOMETRY
1eb0: 5f 45 58 20 20 20 20 20 3d 20 43 54 4c 5f 43 4f _EX = CTL_CO
1ec0: 44 45 5f 54 21 28 49 4f 43 54 4c 5f 44 49 53 4b DE_T!(IOCTL_DISK
1ed0: 5f 42 41 53 45 2c 20 30 78 32 38 2c 20 4d 45 54 _BASE, 0x28, MET
1ee0: 48 4f 44 5f 42 55 46 46 45 52 45 44 2c 20 46 49 HOD_BUFFERED, FI
1ef0: 4c 45 5f 41 4e 59 5f 41 43 43 45 53 53 29 2c 0a LE_ANY_ACCESS),.
1f00: 09 49 4f 43 54 4c 5f 44 49 53 4b 5f 47 52 4f 57 .IOCTL_DISK_GROW
1f10: 5f 50 41 52 54 49 54 49 4f 4e 20 20 20 20 20 20 _PARTITION
1f20: 20 20 20 20 20 20 3d 20 43 54 4c 5f 43 4f 44 45 = CTL_CODE
1f30: 5f 54 21 28 49 4f 43 54 4c 5f 44 49 53 4b 5f 42 _T!(IOCTL_DISK_B
1f40: 41 53 45 2c 20 30 78 33 34 2c 20 4d 45 54 48 4f ASE, 0x34, METHO
1f50: 44 5f 42 55 46 46 45 52 45 44 2c 20 46 49 4c 45 D_BUFFERED, FILE
1f60: 5f 52 45 41 44 5f 41 43 43 45 53 53 20 7c 20 46 _READ_ACCESS | F
1f70: 49 4c 45 5f 57 52 49 54 45 5f 41 43 43 45 53 53 ILE_WRITE_ACCESS
1f80: 29 2c 0a 09 49 4f 43 54 4c 5f 44 49 53 4b 5f 47 ),..IOCTL_DISK_G
1f90: 45 54 5f 43 41 43 48 45 5f 49 4e 46 4f 52 4d 41 ET_CACHE_INFORMA
1fa0: 54 49 4f 4e 20 20 20 20 20 3d 20 43 54 4c 5f 43 TION = CTL_C
1fb0: 4f 44 45 5f 54 21 28 49 4f 43 54 4c 5f 44 49 53 ODE_T!(IOCTL_DIS
1fc0: 4b 5f 42 41 53 45 2c 20 30 78 33 35 2c 20 4d 45 K_BASE, 0x35, ME
1fd0: 54 48 4f 44 5f 42 55 46 46 45 52 45 44 2c 20 46 THOD_BUFFERED, F
1fe0: 49 4c 45 5f 52 45 41 44 5f 41 43 43 45 53 53 29 ILE_READ_ACCESS)
1ff0: 2c 0a 09 49 4f 43 54 4c 5f 44 49 53 4b 5f 53 45 ,..IOCTL_DISK_SE
2000: 54 5f 43 41 43 48 45 5f 49 4e 46 4f 52 4d 41 54 T_CACHE_INFORMAT
2010: 49 4f 4e 20 20 20 20 20 3d 20 43 54 4c 5f 43 4f ION = CTL_CO
2020: 44 45 5f 54 21 28 49 4f 43 54 4c 5f 44 49 53 4b DE_T!(IOCTL_DISK
2030: 5f 42 41 53 45 2c 20 30 78 33 36 2c 20 4d 45 54 _BASE, 0x36, MET
2040: 48 4f 44 5f 42 55 46 46 45 52 45 44 2c 20 46 49 HOD_BUFFERED, FI
2050: 4c 45 5f 52 45 41 44 5f 41 43 43 45 53 53 20 7c LE_READ_ACCESS |
2060: 20 46 49 4c 45 5f 57 52 49 54 45 5f 41 43 43 45 FILE_WRITE_ACCE
2070: 53 53 29 2c 0a 09 49 4f 43 54 4c 5f 44 49 53 4b SS),..IOCTL_DISK
2080: 5f 44 45 4c 45 54 45 5f 44 52 49 56 45 5f 4c 41 _DELETE_DRIVE_LA
2090: 59 4f 55 54 20 20 20 20 20 20 20 3d 20 43 54 4c YOUT = CTL
20a0: 5f 43 4f 44 45 5f 54 21 28 49 4f 43 54 4c 5f 44 _CODE_T!(IOCTL_D
20b0: 49 53 4b 5f 42 41 53 45 2c 20 30 78 34 30 2c 20 ISK_BASE, 0x40,
20c0: 4d 45 54 48 4f 44 5f 42 55 46 46 45 52 45 44 2c METHOD_BUFFERED,
20d0: 20 46 49 4c 45 5f 52 45 41 44 5f 41 43 43 45 53 FILE_READ_ACCES
20e0: 53 20 7c 20 46 49 4c 45 5f 57 52 49 54 45 5f 41 S | FILE_WRITE_A
20f0: 43 43 45 53 53 29 2c 0a 09 49 4f 43 54 4c 5f 44 CCESS),..IOCTL_D
2100: 49 53 4b 5f 55 50 44 41 54 45 5f 50 52 4f 50 45 ISK_UPDATE_PROPE
2110: 52 54 49 45 53 20 20 20 20 20 20 20 20 20 3d 20 RTIES =
2120: 43 54 4c 5f 43 4f 44 45 5f 54 21 28 49 4f 43 54 CTL_CODE_T!(IOCT
2130: 4c 5f 44 49 53 4b 5f 42 41 53 45 2c 20 30 78 35 L_DISK_BASE, 0x5
2140: 30 2c 20 4d 45 54 48 4f 44 5f 42 55 46 46 45 52 0, METHOD_BUFFER
2150: 45 44 2c 20 46 49 4c 45 5f 41 4e 59 5f 41 43 43 ED, FILE_ANY_ACC
2160: 45 53 53 29 2c 0a 09 49 4f 43 54 4c 5f 44 49 53 ESS),..IOCTL_DIS
2170: 4b 5f 43 48 45 43 4b 5f 56 45 52 49 46 59 20 20 K_CHECK_VERIFY
2180: 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 43 54 = CT
2190: 4c 5f 43 4f 44 45 5f 54 21 28 49 4f 43 54 4c 5f L_CODE_T!(IOCTL_
21a0: 44 49 53 4b 5f 42 41 53 45 2c 20 30 78 32 30 30 DISK_BASE, 0x200
21b0: 2c 20 4d 45 54 48 4f 44 5f 42 55 46 46 45 52 45 , METHOD_BUFFERE
21c0: 44 2c 20 46 49 4c 45 5f 52 45 41 44 5f 41 43 43 D, FILE_READ_ACC
21d0: 45 53 53 29 2c 0a 09 49 4f 43 54 4c 5f 44 49 53 ESS),..IOCTL_DIS
21e0: 4b 5f 4d 45 44 49 41 5f 52 45 4d 4f 56 41 4c 20 K_MEDIA_REMOVAL
21f0: 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 43 54 = CT
2200: 4c 5f 43 4f 44 45 5f 54 21 28 49 4f 43 54 4c 5f L_CODE_T!(IOCTL_
2210: 44 49 53 4b 5f 42 41 53 45 2c 20 30 78 32 30 31 DISK_BASE, 0x201
2220: 2c 20 4d 45 54 48 4f 44 5f 42 55 46 46 45 52 45 , METHOD_BUFFERE
2230: 44 2c 20 46 49 4c 45 5f 52 45 41 44 5f 41 43 43 D, FILE_READ_ACC
2240: 45 53 53 29 2c 0a 09 49 4f 43 54 4c 5f 44 49 53 ESS),..IOCTL_DIS
2250: 4b 5f 45 4a 45 43 54 5f 4d 45 44 49 41 20 20 20 K_EJECT_MEDIA
2260: 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 43 54 = CT
2270: 4c 5f 43 4f 44 45 5f 54 21 28 49 4f 43 54 4c 5f L_CODE_T!(IOCTL_
2280: 44 49 53 4b 5f 42 41 53 45 2c 20 30 78 32 30 32 DISK_BASE, 0x202
2290: 2c 20 4d 45 54 48 4f 44 5f 42 55 46 46 45 52 45 , METHOD_BUFFERE
22a0: 44 2c 20 46 49 4c 45 5f 52 45 41 44 5f 41 43 43 D, FILE_READ_ACC
22b0: 45 53 53 29 2c 0a 09 49 4f 43 54 4c 5f 44 49 53 ESS),..IOCTL_DIS
22c0: 4b 5f 4c 4f 41 44 5f 4d 45 44 49 41 20 20 20 20 K_LOAD_MEDIA
22d0: 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 43 54 = CT
22e0: 4c 5f 43 4f 44 45 5f 54 21 28 49 4f 43 54 4c 5f L_CODE_T!(IOCTL_
22f0: 44 49 53 4b 5f 42 41 53 45 2c 20 30 78 32 30 33 DISK_BASE, 0x203
2300: 2c 20 4d 45 54 48 4f 44 5f 42 55 46 46 45 52 45 , METHOD_BUFFERE
2310: 44 2c 20 46 49 4c 45 5f 52 45 41 44 5f 41 43 43 D, FILE_READ_ACC
2320: 45 53 53 29 2c 0a 09 49 4f 43 54 4c 5f 44 49 53 ESS),..IOCTL_DIS
2330: 4b 5f 52 45 53 45 52 56 45 20 20 20 20 20 20 20 K_RESERVE
2340: 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 43 54 = CT
2350: 4c 5f 43 4f 44 45 5f 54 21 28 49 4f 43 54 4c 5f L_CODE_T!(IOCTL_
2360: 44 49 53 4b 5f 42 41 53 45 2c 20 30 78 32 30 34 DISK_BASE, 0x204
2370: 2c 20 4d 45 54 48 4f 44 5f 42 55 46 46 45 52 45 , METHOD_BUFFERE
2380: 44 2c 20 46 49 4c 45 5f 52 45 41 44 5f 41 43 43 D, FILE_READ_ACC
2390: 45 53 53 29 2c 0a 09 49 4f 43 54 4c 5f 44 49 53 ESS),..IOCTL_DIS
23a0: 4b 5f 52 45 4c 45 41 53 45 20 20 20 20 20 20 20 K_RELEASE
23b0: 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 43 54 = CT
23c0: 4c 5f 43 4f 44 45 5f 54 21 28 49 4f 43 54 4c 5f L_CODE_T!(IOCTL_
23d0: 44 49 53 4b 5f 42 41 53 45 2c 20 30 78 32 30 35 DISK_BASE, 0x205
23e0: 2c 20 4d 45 54 48 4f 44 5f 42 55 46 46 45 52 45 , METHOD_BUFFERE
23f0: 44 2c 20 46 49 4c 45 5f 52 45 41 44 5f 41 43 43 D, FILE_READ_ACC
2400: 45 53 53 29 2c 0a 09 49 4f 43 54 4c 5f 44 49 53 ESS),..IOCTL_DIS
2410: 4b 5f 46 49 4e 44 5f 4e 45 57 5f 44 45 56 49 43 K_FIND_NEW_DEVIC
2420: 45 53 20 20 20 20 20 20 20 20 20 20 3d 20 43 54 ES = CT
2430: 4c 5f 43 4f 44 45 5f 54 21 28 49 4f 43 54 4c 5f L_CODE_T!(IOCTL_
2440: 44 49 53 4b 5f 42 41 53 45 2c 20 30 78 32 30 36 DISK_BASE, 0x206
2450: 2c 20 4d 45 54 48 4f 44 5f 42 55 46 46 45 52 45 , METHOD_BUFFERE
2460: 44 2c 20 46 49 4c 45 5f 52 45 41 44 5f 41 43 43 D, FILE_READ_ACC
2470: 45 53 53 29 2c 0a 09 49 4f 43 54 4c 5f 44 49 53 ESS),..IOCTL_DIS
2480: 4b 5f 52 45 4d 4f 56 45 5f 44 45 56 49 43 45 20 K_REMOVE_DEVICE
2490: 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 43 54 = CT
24a0: 4c 5f 43 4f 44 45 5f 54 21 28 49 4f 43 54 4c 5f L_CODE_T!(IOCTL_
24b0: 44 49 53 4b 5f 42 41 53 45 2c 20 30 78 32 30 37 DISK_BASE, 0x207
24c0: 2c 20 4d 45 54 48 4f 44 5f 42 55 46 46 45 52 45 , METHOD_BUFFERE
24d0: 44 2c 20 46 49 4c 45 5f 52 45 41 44 5f 41 43 43 D, FILE_READ_ACC
24e0: 45 53 53 29 2c 0a 09 49 4f 43 54 4c 5f 44 49 53 ESS),..IOCTL_DIS
24f0: 4b 5f 47 45 54 5f 4d 45 44 49 41 5f 54 59 50 45 K_GET_MEDIA_TYPE
2500: 53 20 20 20 20 20 20 20 20 20 20 20 3d 20 43 54 S = CT
2510: 4c 5f 43 4f 44 45 5f 54 21 28 49 4f 43 54 4c 5f L_CODE_T!(IOCTL_
2520: 44 49 53 4b 5f 42 41 53 45 2c 20 30 78 33 30 30 DISK_BASE, 0x300
2530: 2c 20 4d 45 54 48 4f 44 5f 42 55 46 46 45 52 45 , METHOD_BUFFERE
2540: 44 2c 20 46 49 4c 45 5f 41 4e 59 5f 41 43 43 45 D, FILE_ANY_ACCE
2550: 53 53 29 2c 0a 09 49 4f 43 54 4c 5f 44 49 53 4b SS),..IOCTL_DISK
2560: 5f 55 50 44 41 54 45 5f 44 52 49 56 45 5f 53 49 _UPDATE_DRIVE_SI
2570: 5a 45 20 20 20 20 20 20 20 20 20 3d 20 43 54 4c ZE = CTL
2580: 5f 43 4f 44 45 5f 54 21 28 49 4f 43 54 4c 5f 44 _CODE_T!(IOCTL_D
2590: 49 53 4b 5f 42 41 53 45 2c 20 30 78 30 30 33 32 ISK_BASE, 0x0032
25a0: 2c 20 4d 45 54 48 4f 44 5f 42 55 46 46 45 52 45 , METHOD_BUFFERE
25b0: 44 2c 20 46 49 4c 45 5f 52 45 41 44 5f 41 43 43 D, FILE_READ_ACC
25c0: 45 53 53 20 7c 20 46 49 4c 45 5f 57 52 49 54 45 ESS | FILE_WRITE
25d0: 5f 41 43 43 45 53 53 29 2c 0a 09 49 4f 43 54 4c _ACCESS),..IOCTL
25e0: 5f 53 45 52 49 41 4c 5f 4c 53 52 4d 53 54 5f 49 _SERIAL_LSRMST_I
25f0: 4e 53 45 52 54 20 20 20 20 20 20 20 20 20 20 20 NSERT
2600: 3d 20 43 54 4c 5f 43 4f 44 45 5f 54 21 28 46 49 = CTL_CODE_T!(FI
2610: 4c 45 5f 44 45 56 49 43 45 5f 53 45 52 49 41 4c LE_DEVICE_SERIAL
2620: 5f 50 4f 52 54 2c 20 33 31 2c 20 4d 45 54 48 4f _PORT, 31, METHO
2630: 44 5f 42 55 46 46 45 52 45 44 2c 20 46 49 4c 45 D_BUFFERED, FILE
2640: 5f 41 4e 59 5f 41 43 43 45 53 53 29 2c 0a 0a 09 _ANY_ACCESS),...
2650: 49 4f 43 54 4c 5f 56 4f 4c 55 4d 45 5f 47 45 54 IOCTL_VOLUME_GET
2660: 5f 56 4f 4c 55 4d 45 5f 44 49 53 4b 5f 45 58 54 _VOLUME_DISK_EXT
2670: 45 4e 54 53 20 3d 20 43 54 4c 5f 43 4f 44 45 5f ENTS = CTL_CODE_
2680: 54 21 28 49 4f 43 54 4c 5f 56 4f 4c 55 4d 45 5f T!(IOCTL_VOLUME_
2690: 42 41 53 45 2c 20 30 2c 20 4d 45 54 48 4f 44 5f BASE, 0, METHOD_
26a0: 42 55 46 46 45 52 45 44 2c 20 46 49 4c 45 5f 41 BUFFERED, FILE_A
26b0: 4e 59 5f 41 43 43 45 53 53 29 2c 0a 09 49 4f 43 NY_ACCESS),..IOC
26c0: 54 4c 5f 56 4f 4c 55 4d 45 5f 49 53 5f 43 4c 55 TL_VOLUME_IS_CLU
26d0: 53 54 45 52 45 44 20 20 20 20 20 20 20 20 20 20 STERED
26e0: 20 20 3d 20 43 54 4c 5f 43 4f 44 45 5f 54 21 28 = CTL_CODE_T!(
26f0: 49 4f 43 54 4c 5f 56 4f 4c 55 4d 45 5f 42 41 53 IOCTL_VOLUME_BAS
2700: 45 2c 20 31 32 2c 20 4d 45 54 48 4f 44 5f 42 55 E, 12, METHOD_BU
2710: 46 46 45 52 45 44 2c 20 46 49 4c 45 5f 41 4e 59 FFERED, FILE_ANY
2720: 5f 41 43 43 45 53 53 29 2c 0a 0a 09 46 53 43 54 _ACCESS),...FSCT
2730: 4c 5f 4c 4f 43 4b 5f 56 4f 4c 55 4d 45 20 20 20 L_LOCK_VOLUME
2740: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2750: 20 3d 20 43 54 4c 5f 43 4f 44 45 5f 54 21 28 46 = CTL_CODE_T!(F
2760: 49 4c 45 5f 44 45 56 49 43 45 5f 46 49 4c 45 5f ILE_DEVICE_FILE_
2770: 53 59 53 54 45 4d 2c 20 36 2c 20 4d 45 54 48 4f SYSTEM, 6, METHO
2780: 44 5f 42 55 46 46 45 52 45 44 2c 20 46 49 4c 45 D_BUFFERED, FILE
2790: 5f 41 4e 59 5f 41 43 43 45 53 53 29 2c 0a 09 46 _ANY_ACCESS),..F
27a0: 53 43 54 4c 5f 55 4e 4c 4f 43 4b 5f 56 4f 4c 55 SCTL_UNLOCK_VOLU
27b0: 4d 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ME
27c0: 20 20 20 20 3d 20 43 54 4c 5f 43 4f 44 45 5f 54 = CTL_CODE_T
27d0: 21 28 46 49 4c 45 5f 44 45 56 49 43 45 5f 46 49 !(FILE_DEVICE_FI
27e0: 4c 45 5f 53 59 53 54 45 4d 2c 20 37 2c 20 4d 45 LE_SYSTEM, 7, ME
27f0: 54 48 4f 44 5f 42 55 46 46 45 52 45 44 2c 20 46 THOD_BUFFERED, F
2800: 49 4c 45 5f 41 4e 59 5f 41 43 43 45 53 53 29 2c ILE_ANY_ACCESS),
2810: 0a 09 46 53 43 54 4c 5f 44 49 53 4d 4f 55 4e 54 ..FSCTL_DISMOUNT
2820: 5f 56 4f 4c 55 4d 45 20 20 20 20 20 20 20 20 20 _VOLUME
2830: 20 20 20 20 20 20 20 3d 20 43 54 4c 5f 43 4f 44 = CTL_COD
2840: 45 5f 54 21 28 46 49 4c 45 5f 44 45 56 49 43 45 E_T!(FILE_DEVICE
2850: 5f 46 49 4c 45 5f 53 59 53 54 45 4d 2c 20 38 2c _FILE_SYSTEM, 8,
2860: 20 4d 45 54 48 4f 44 5f 42 55 46 46 45 52 45 44 METHOD_BUFFERED
2870: 2c 20 46 49 4c 45 5f 41 4e 59 5f 41 43 43 45 53 , FILE_ANY_ACCES
2880: 53 29 2c 0a 09 46 53 43 54 4c 5f 4d 4f 55 4e 54 S),..FSCTL_MOUNT
2890: 5f 44 42 4c 53 5f 56 4f 4c 55 4d 45 20 20 20 20 _DBLS_VOLUME
28a0: 20 20 20 20 20 20 20 20 20 20 3d 20 43 54 4c 5f = CTL_
28b0: 43 4f 44 45 5f 54 21 28 46 49 4c 45 5f 44 45 56 CODE_T!(FILE_DEV
28c0: 49 43 45 5f 46 49 4c 45 5f 53 59 53 54 45 4d 2c ICE_FILE_SYSTEM,
28d0: 20 31 33 2c 20 4d 45 54 48 4f 44 5f 42 55 46 46 13, METHOD_BUFF
28e0: 45 52 45 44 2c 20 46 49 4c 45 5f 41 4e 59 5f 41 ERED, FILE_ANY_A
28f0: 43 43 45 53 53 29 2c 0a 09 46 53 43 54 4c 5f 47 CCESS),..FSCTL_G
2900: 45 54 5f 43 4f 4d 50 52 45 53 53 49 4f 4e 20 20 ET_COMPRESSION
2910: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 =
2920: 43 54 4c 5f 43 4f 44 45 5f 54 21 28 46 49 4c 45 CTL_CODE_T!(FILE
2930: 5f 44 45 56 49 43 45 5f 46 49 4c 45 5f 53 59 53 _DEVICE_FILE_SYS
2940: 54 45 4d 2c 20 31 35 2c 20 4d 45 54 48 4f 44 5f TEM, 15, METHOD_
2950: 42 55 46 46 45 52 45 44 2c 20 46 49 4c 45 5f 41 BUFFERED, FILE_A
2960: 4e 59 5f 41 43 43 45 53 53 29 2c 0a 09 46 53 43 NY_ACCESS),..FSC
2970: 54 4c 5f 53 45 54 5f 43 4f 4d 50 52 45 53 53 49 TL_SET_COMPRESSI
2980: 4f 4e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ON
2990: 20 20 3d 20 43 54 4c 5f 43 4f 44 45 5f 54 21 28 = CTL_CODE_T!(
29a0: 46 49 4c 45 5f 44 45 56 49 43 45 5f 46 49 4c 45 FILE_DEVICE_FILE
29b0: 5f 53 59 53 54 45 4d 2c 20 31 36 2c 20 4d 45 54 _SYSTEM, 16, MET
29c0: 48 4f 44 5f 42 55 46 46 45 52 45 44 2c 20 46 49 HOD_BUFFERED, FI
29d0: 4c 45 5f 52 45 41 44 5f 44 41 54 41 7c 46 49 4c LE_READ_DATA|FIL
29e0: 45 5f 57 52 49 54 45 5f 44 41 54 41 29 2c 0a 09 E_WRITE_DATA),..
29f0: 46 53 43 54 4c 5f 52 45 41 44 5f 43 4f 4d 50 52 FSCTL_READ_COMPR
2a00: 45 53 53 49 4f 4e 20 20 20 20 20 20 20 20 20 20 ESSION
2a10: 20 20 20 20 20 3d 20 43 54 4c 5f 43 4f 44 45 5f = CTL_CODE_
2a20: 54 21 28 46 49 4c 45 5f 44 45 56 49 43 45 5f 46 T!(FILE_DEVICE_F
2a30: 49 4c 45 5f 53 59 53 54 45 4d 2c 20 31 37 2c 20 ILE_SYSTEM, 17,
2a40: 4d 45 54 48 4f 44 5f 4e 45 49 54 48 45 52 2c 20 METHOD_NEITHER,
2a50: 46 49 4c 45 5f 52 45 41 44 5f 44 41 54 41 29 2c FILE_READ_DATA),
2a60: 0a 09 46 53 43 54 4c 5f 57 52 49 54 45 5f 43 4f ..FSCTL_WRITE_CO
2a70: 4d 50 52 45 53 53 49 4f 4e 20 20 20 20 20 20 20 MPRESSION
2a80: 20 20 20 20 20 20 20 3d 20 43 54 4c 5f 43 4f 44 = CTL_COD
2a90: 45 5f 54 21 28 46 49 4c 45 5f 44 45 56 49 43 45 E_T!(FILE_DEVICE
2aa0: 5f 46 49 4c 45 5f 53 59 53 54 45 4d 2c 20 31 38 _FILE_SYSTEM, 18
2ab0: 2c 20 4d 45 54 48 4f 44 5f 4e 45 49 54 48 45 52 , METHOD_NEITHER
2ac0: 2c 20 46 49 4c 45 5f 57 52 49 54 45 5f 44 41 54 , FILE_WRITE_DAT
2ad0: 41 29 2c 0a 09 46 53 43 54 4c 5f 47 45 54 5f 4e A),..FSCTL_GET_N
2ae0: 54 46 53 5f 56 4f 4c 55 4d 45 5f 44 41 54 41 20 TFS_VOLUME_DATA
2af0: 20 20 20 20 20 20 20 20 20 20 3d 20 43 54 4c 5f = CTL_
2b00: 43 4f 44 45 5f 54 21 28 46 49 4c 45 5f 44 45 56 CODE_T!(FILE_DEV
2b10: 49 43 45 5f 46 49 4c 45 5f 53 59 53 54 45 4d 2c ICE_FILE_SYSTEM,
2b20: 20 32 35 2c 20 4d 45 54 48 4f 44 5f 42 55 46 46 25, METHOD_BUFF
2b30: 45 52 45 44 2c 20 46 49 4c 45 5f 41 4e 59 5f 41 ERED, FILE_ANY_A
2b40: 43 43 45 53 53 29 2c 0a 09 46 53 43 54 4c 5f 47 CCESS),..FSCTL_G
2b50: 45 54 5f 56 4f 4c 55 4d 45 5f 42 49 54 4d 41 50 ET_VOLUME_BITMAP
2b60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 =
2b70: 43 54 4c 5f 43 4f 44 45 5f 54 21 28 46 49 4c 45 CTL_CODE_T!(FILE
2b80: 5f 44 45 56 49 43 45 5f 46 49 4c 45 5f 53 59 53 _DEVICE_FILE_SYS
2b90: 54 45 4d 2c 20 32 37 2c 20 4d 45 54 48 4f 44 5f TEM, 27, METHOD_
2ba0: 4e 45 49 54 48 45 52 2c 20 46 49 4c 45 5f 41 4e NEITHER, FILE_AN
2bb0: 59 5f 41 43 43 45 53 53 29 2c 0a 09 46 53 43 54 Y_ACCESS),..FSCT
2bc0: 4c 5f 47 45 54 5f 52 45 54 52 49 45 56 41 4c 5f L_GET_RETRIEVAL_
2bd0: 50 4f 49 4e 54 45 52 53 20 20 20 20 20 20 20 20 POINTERS
2be0: 20 3d 20 43 54 4c 5f 43 4f 44 45 5f 54 21 28 46 = CTL_CODE_T!(F
2bf0: 49 4c 45 5f 44 45 56 49 43 45 5f 46 49 4c 45 5f ILE_DEVICE_FILE_
2c00: 53 59 53 54 45 4d 2c 20 32 38 2c 20 4d 45 54 48 SYSTEM, 28, METH
2c10: 4f 44 5f 4e 45 49 54 48 45 52 2c 20 46 49 4c 45 OD_NEITHER, FILE
2c20: 5f 41 4e 59 5f 41 43 43 45 53 53 29 2c 0a 09 46 _ANY_ACCESS),..F
2c30: 53 43 54 4c 5f 4d 4f 56 45 5f 46 49 4c 45 20 20 SCTL_MOVE_FILE
2c40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2c50: 20 20 20 20 3d 20 43 54 4c 5f 43 4f 44 45 5f 54 = CTL_CODE_T
2c60: 21 28 46 49 4c 45 5f 44 45 56 49 43 45 5f 46 49 !(FILE_DEVICE_FI
2c70: 4c 45 5f 53 59 53 54 45 4d 2c 20 32 39 2c 20 4d LE_SYSTEM, 29, M
2c80: 45 54 48 4f 44 5f 42 55 46 46 45 52 45 44 2c 20 ETHOD_BUFFERED,
2c90: 46 49 4c 45 5f 41 4e 59 5f 41 43 43 45 53 53 29 FILE_ANY_ACCESS)
2ca0: 2c 0a 09 46 53 43 54 4c 5f 47 45 54 5f 52 45 50 ,..FSCTL_GET_REP
2cb0: 41 52 53 45 5f 50 4f 49 4e 54 20 20 20 20 20 20 ARSE_POINT
2cc0: 20 20 20 20 20 20 20 20 3d 20 43 54 4c 5f 43 4f = CTL_CO
2cd0: 44 45 5f 54 21 28 46 49 4c 45 5f 44 45 56 49 43 DE_T!(FILE_DEVIC
2ce0: 45 5f 46 49 4c 45 5f 53 59 53 54 45 4d 2c 20 34 E_FILE_SYSTEM, 4
2cf0: 32 2c 20 4d 45 54 48 4f 44 5f 42 55 46 46 45 52 2, METHOD_BUFFER
2d00: 45 44 2c 20 46 49 4c 45 5f 41 4e 59 5f 41 43 43 ED, FILE_ANY_ACC
2d10: 45 53 53 29 2c 0a 09 46 53 43 54 4c 5f 53 45 54 ESS),..FSCTL_SET
2d20: 5f 52 45 50 41 52 53 45 5f 50 4f 49 4e 54 20 20 _REPARSE_POINT
2d30: 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 43 54 = CT
2d40: 4c 5f 43 4f 44 45 5f 54 21 28 46 49 4c 45 5f 44 L_CODE_T!(FILE_D
2d50: 45 56 49 43 45 5f 46 49 4c 45 5f 53 59 53 54 45 EVICE_FILE_SYSTE
2d60: 4d 2c 20 34 31 2c 20 4d 45 54 48 4f 44 5f 42 55 M, 41, METHOD_BU
2d70: 46 46 45 52 45 44 2c 20 46 49 4c 45 5f 41 4e 59 FFERED, FILE_ANY
2d80: 5f 41 43 43 45 53 53 29 2c 0a 09 46 53 43 54 4c _ACCESS),..FSCTL
2d90: 5f 44 45 4c 45 54 45 5f 52 45 50 41 52 53 45 5f _DELETE_REPARSE_
2da0: 50 4f 49 4e 54 20 20 20 20 20 20 20 20 20 20 20 POINT
2db0: 3d 20 43 54 4c 5f 43 4f 44 45 5f 54 21 28 46 49 = CTL_CODE_T!(FI
2dc0: 4c 45 5f 44 45 56 49 43 45 5f 46 49 4c 45 5f 53 LE_DEVICE_FILE_S
2dd0: 59 53 54 45 4d 2c 20 34 33 2c 20 4d 45 54 48 4f YSTEM, 43, METHO
2de0: 44 5f 42 55 46 46 45 52 45 44 2c 20 46 49 4c 45 D_BUFFERED, FILE
2df0: 5f 41 4e 59 5f 41 43 43 45 53 53 29 2c 0a 09 46 _ANY_ACCESS),..F
2e00: 53 43 54 4c 5f 53 45 54 5f 53 50 41 52 53 45 20 SCTL_SET_SPARSE
2e10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2e20: 20 20 20 20 3d 20 43 54 4c 5f 43 4f 44 45 5f 54 = CTL_CODE_T
2e30: 21 28 46 49 4c 45 5f 44 45 56 49 43 45 5f 46 49 !(FILE_DEVICE_FI
2e40: 4c 45 5f 53 59 53 54 45 4d 2c 20 34 39 2c 20 4d LE_SYSTEM, 49, M
2e50: 45 54 48 4f 44 5f 42 55 46 46 45 52 45 44 2c 20 ETHOD_BUFFERED,
2e60: 46 49 4c 45 5f 53 50 45 43 49 41 4c 5f 41 43 43 FILE_SPECIAL_ACC
2e70: 45 53 53 29 2c 0a 7d 0a 0a 65 6e 75 6d 20 3a 20 ESS),.}..enum :
2e80: 42 59 54 45 20 7b 0a 09 50 41 52 54 49 54 49 4f BYTE {..PARTITIO
2e90: 4e 5f 45 4e 54 52 59 5f 55 4e 55 53 45 44 2c 0a N_ENTRY_UNUSED,.
2ea0: 09 50 41 52 54 49 54 49 4f 4e 5f 46 41 54 5f 31 .PARTITION_FAT_1
2eb0: 32 2c 0a 09 50 41 52 54 49 54 49 4f 4e 5f 58 45 2,..PARTITION_XE
2ec0: 4e 49 58 5f 31 2c 0a 09 50 41 52 54 49 54 49 4f NIX_1,..PARTITIO
2ed0: 4e 5f 58 45 4e 49 58 5f 32 2c 0a 09 50 41 52 54 N_XENIX_2,..PART
2ee0: 49 54 49 4f 4e 5f 46 41 54 5f 31 36 2c 0a 09 50 ITION_FAT_16,..P
2ef0: 41 52 54 49 54 49 4f 4e 5f 45 58 54 45 4e 44 45 ARTITION_EXTENDE
2f00: 44 2c 0a 09 50 41 52 54 49 54 49 4f 4e 5f 48 55 D,..PARTITION_HU
2f10: 47 45 2c 0a 09 50 41 52 54 49 54 49 4f 4e 5f 49 GE,..PARTITION_I
2f20: 46 53 2c 20 20 20 20 20 20 20 20 20 2f 2f 20 3d FS, // =
2f30: 20 30 78 30 37 0a 09 50 41 52 54 49 54 49 4f 4e 0x07..PARTITION
2f40: 5f 46 41 54 33 32 20 20 20 20 20 20 20 20 20 20 _FAT32
2f50: 20 3d 20 30 78 30 42 2c 0a 09 50 41 52 54 49 54 = 0x0B,..PARTIT
2f60: 49 4f 4e 5f 46 41 54 33 32 5f 58 49 4e 54 31 33 ION_FAT32_XINT13
2f70: 20 20 20 20 3d 20 30 78 30 43 2c 0a 09 50 41 52 = 0x0C,..PAR
2f80: 54 49 54 49 4f 4e 5f 58 49 4e 54 31 33 20 20 20 TITION_XINT13
2f90: 20 20 20 20 20 20 20 3d 20 30 78 30 45 2c 0a 09 = 0x0E,..
2fa0: 50 41 52 54 49 54 49 4f 4e 5f 58 49 4e 54 31 33 PARTITION_XINT13
2fb0: 5f 45 58 54 45 4e 44 45 44 20 3d 20 30 78 30 46 _EXTENDED = 0x0F
2fc0: 2c 0a 09 50 41 52 54 49 54 49 4f 4e 5f 50 52 45 ,..PARTITION_PRE
2fd0: 50 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 30 P = 0
2fe0: 78 34 31 2c 0a 09 50 41 52 54 49 54 49 4f 4e 5f x41,..PARTITION_
2ff0: 4c 44 4d 20 20 20 20 20 20 20 20 20 20 20 20 20 LDM
3000: 3d 20 30 78 34 32 2c 0a 09 50 41 52 54 49 54 49 = 0x42,..PARTITI
3010: 4f 4e 5f 55 4e 49 58 20 20 20 20 20 20 20 20 20 ON_UNIX
3020: 20 20 20 3d 20 30 78 36 33 0a 7d 0a 0a 63 6f 6e = 0x63.}..con
3030: 73 74 20 42 59 54 45 0a 09 50 41 52 54 49 54 49 st BYTE..PARTITI
3040: 4f 4e 5f 4e 54 46 54 20 3d 20 30 78 38 30 2c 0a ON_NTFT = 0x80,.
3050: 09 56 41 4c 49 44 5f 4e 54 46 54 20 20 20 20 20 .VALID_NTFT
3060: 3d 20 30 78 43 30 3b 0a 0a 65 6e 75 6d 20 7b 0a = 0xC0;..enum {.
3070: 09 53 45 52 49 41 4c 5f 4c 53 52 4d 53 54 5f 45 .SERIAL_LSRMST_E
3080: 53 43 41 50 45 2c 0a 09 53 45 52 49 41 4c 5f 4c SCAPE,..SERIAL_L
3090: 53 52 4d 53 54 5f 4c 53 52 5f 44 41 54 41 2c 0a SRMST_LSR_DATA,.
30a0: 09 53 45 52 49 41 4c 5f 4c 53 52 4d 53 54 5f 4c .SERIAL_LSRMST_L
30b0: 53 52 5f 4e 4f 44 41 54 41 2c 0a 09 53 45 52 49 SR_NODATA,..SERI
30c0: 41 4c 5f 4c 53 52 4d 53 54 5f 4d 53 54 0a 7d 0a AL_LSRMST_MST.}.
30d0: 0a 65 6e 75 6d 20 7b 0a 09 44 49 53 4b 5f 4c 4f .enum {..DISK_LO
30e0: 47 47 49 4e 47 5f 53 54 41 52 54 2c 0a 09 44 49 GGING_START,..DI
30f0: 53 4b 5f 4c 4f 47 47 49 4e 47 5f 53 54 4f 50 2c SK_LOGGING_STOP,
3100: 0a 09 44 49 53 4b 5f 4c 4f 47 47 49 4e 47 5f 44 ..DISK_LOGGING_D
3110: 55 4d 50 2c 0a 09 44 49 53 4b 5f 42 49 4e 4e 49 UMP,..DISK_BINNI
3120: 4e 47 0a 7d 0a 0a 61 6c 69 61 73 20 57 4f 52 44 NG.}..alias WORD
3130: 20 42 41 44 5f 54 52 41 43 4b 5f 4e 55 4d 42 45 BAD_TRACK_NUMBE
3140: 52 3b 0a 61 6c 69 61 73 20 57 4f 52 44 2a 20 50 R;.alias WORD* P
3150: 42 41 44 5f 54 52 41 43 4b 5f 4e 55 4d 42 45 52 BAD_TRACK_NUMBER
3160: 3b 0a 0a 65 6e 75 6d 20 42 49 4e 5f 54 59 50 45 ;..enum BIN_TYPE
3170: 53 20 7b 0a 09 52 65 71 75 65 73 74 53 69 7a 65 S {..RequestSize
3180: 2c 20 52 65 71 75 65 73 74 4c 6f 63 61 74 69 6f , RequestLocatio
3190: 6e 0a 7d 0a 0a 73 74 72 75 63 74 20 42 49 4e 5f n.}..struct BIN_
31a0: 52 41 4e 47 45 20 7b 0a 09 4c 41 52 47 45 5f 49 RANGE {..LARGE_I
31b0: 4e 54 45 47 45 52 20 53 74 61 72 74 56 61 6c 75 NTEGER StartValu
31c0: 65 3b 0a 09 4c 41 52 47 45 5f 49 4e 54 45 47 45 e;..LARGE_INTEGE
31d0: 52 20 4c 65 6e 67 74 68 3b 0a 7d 0a 61 6c 69 61 R Length;.}.alia
31e0: 73 20 42 49 4e 5f 52 41 4e 47 45 2a 20 50 42 49 s BIN_RANGE* PBI
31f0: 4e 5f 52 41 4e 47 45 3b 0a 0a 73 74 72 75 63 74 N_RANGE;..struct
3200: 20 42 49 4e 5f 43 4f 55 4e 54 20 7b 0a 09 42 49 BIN_COUNT {..BI
3210: 4e 5f 52 41 4e 47 45 20 42 69 6e 52 61 6e 67 65 N_RANGE BinRange
3220: 3b 0a 09 44 57 4f 52 44 20 20 20 20 20 42 69 6e ;..DWORD Bin
3230: 43 6f 75 6e 74 3b 0a 7d 0a 61 6c 69 61 73 20 42 Count;.}.alias B
3240: 49 4e 5f 43 4f 55 4e 54 2a 20 50 42 49 4e 5f 43 IN_COUNT* PBIN_C
3250: 4f 55 4e 54 3b 0a 0a 73 74 72 75 63 74 20 42 49 OUNT;..struct BI
3260: 4e 5f 52 45 53 55 4c 54 53 20 7b 0a 09 44 57 4f N_RESULTS {..DWO
3270: 52 44 20 20 20 20 20 4e 75 6d 62 65 72 4f 66 42 RD NumberOfB
3280: 69 6e 73 3b 0a 09 42 49 4e 5f 43 4f 55 4e 54 20 ins;..BIN_COUNT
3290: 5f 42 69 6e 43 6f 75 6e 74 73 3b 0a 0a 09 42 49 _BinCounts;...BI
32a0: 4e 5f 43 4f 55 4e 54 2a 20 42 69 6e 43 6f 75 6e N_COUNT* BinCoun
32b0: 74 73 28 29 20 7b 20 72 65 74 75 72 6e 20 26 5f ts() { return &_
32c0: 42 69 6e 43 6f 75 6e 74 73 3b 20 7d 0a 7d 0a 61 BinCounts; }.}.a
32d0: 6c 69 61 73 20 42 49 4e 5f 52 45 53 55 4c 54 53 lias BIN_RESULTS
32e0: 2a 20 50 42 49 4e 5f 52 45 53 55 4c 54 53 3b 0a * PBIN_RESULTS;.
32f0: 0a 65 6e 75 6d 20 50 41 52 54 49 54 49 4f 4e 5f .enum PARTITION_
3300: 53 54 59 4c 45 20 7b 0a 09 50 41 52 54 49 54 49 STYLE {..PARTITI
3310: 4f 4e 5f 53 54 59 4c 45 5f 4d 42 52 2c 0a 09 50 ON_STYLE_MBR,..P
3320: 41 52 54 49 54 49 4f 4e 5f 53 54 59 4c 45 5f 47 ARTITION_STYLE_G
3330: 50 54 2c 0a 09 50 41 52 54 49 54 49 4f 4e 5f 53 PT,..PARTITION_S
3340: 54 59 4c 45 5f 52 41 57 0a 7d 0a 0a 73 74 72 75 TYLE_RAW.}..stru
3350: 63 74 20 43 52 45 41 54 45 5f 44 49 53 4b 5f 47 ct CREATE_DISK_G
3360: 50 54 20 7b 0a 09 47 55 49 44 20 20 44 69 73 6b PT {..GUID Disk
3370: 49 64 3b 0a 09 44 57 4f 52 44 20 4d 61 78 50 61 Id;..DWORD MaxPa
3380: 72 74 69 74 69 6f 6e 43 6f 75 6e 74 3b 0a 7d 0a rtitionCount;.}.
3390: 61 6c 69 61 73 20 43 52 45 41 54 45 5f 44 49 53 alias CREATE_DIS
33a0: 4b 5f 47 50 54 2a 20 50 43 52 45 41 54 45 5f 44 K_GPT* PCREATE_D
33b0: 49 53 4b 5f 47 50 54 3b 0a 0a 73 74 72 75 63 74 ISK_GPT;..struct
33c0: 20 43 52 45 41 54 45 5f 44 49 53 4b 5f 4d 42 52 CREATE_DISK_MBR
33d0: 20 7b 0a 09 44 57 4f 52 44 20 53 69 67 6e 61 74 {..DWORD Signat
33e0: 75 72 65 3b 0a 7d 0a 61 6c 69 61 73 20 43 52 45 ure;.}.alias CRE
33f0: 41 54 45 5f 44 49 53 4b 5f 4d 42 52 2a 20 50 43 ATE_DISK_MBR* PC
3400: 52 45 41 54 45 5f 44 49 53 4b 5f 4d 42 52 3b 0a REATE_DISK_MBR;.
3410: 0a 73 74 72 75 63 74 20 43 52 45 41 54 45 5f 44 .struct CREATE_D
3420: 49 53 4b 20 7b 0a 09 50 41 52 54 49 54 49 4f 4e ISK {..PARTITION
3430: 5f 53 54 59 4c 45 20 50 61 72 74 69 74 69 6f 6e _STYLE Partition
3440: 53 74 79 6c 65 3b 0a 09 75 6e 69 6f 6e 20 7b 0a Style;..union {.
3450: 09 09 43 52 45 41 54 45 5f 44 49 53 4b 5f 4d 42 ..CREATE_DISK_MB
3460: 52 20 4d 62 72 3b 0a 09 09 43 52 45 41 54 45 5f R Mbr;...CREATE_
3470: 44 49 53 4b 5f 47 50 54 20 47 70 74 3b 0a 09 7d DISK_GPT Gpt;..}
3480: 0a 7d 0a 61 6c 69 61 73 20 43 52 45 41 54 45 5f .}.alias CREATE_
3490: 44 49 53 4b 2a 20 50 43 52 45 41 54 45 5f 44 49 DISK* PCREATE_DI
34a0: 53 4b 3b 0a 0a 65 6e 75 6d 20 44 49 53 4b 5f 43 SK;..enum DISK_C
34b0: 41 43 48 45 5f 52 45 54 45 4e 54 49 4f 4e 5f 50 ACHE_RETENTION_P
34c0: 52 49 4f 52 49 54 59 20 7b 0a 09 45 71 75 61 6c RIORITY {..Equal
34d0: 50 72 69 6f 72 69 74 79 2c 0a 09 4b 65 65 70 50 Priority,..KeepP
34e0: 72 65 66 65 74 63 68 65 64 44 61 74 61 2c 0a 09 refetchedData,..
34f0: 4b 65 65 70 52 65 61 64 44 61 74 61 0a 7d 0a 0a KeepReadData.}..
3500: 73 74 72 75 63 74 20 44 49 53 4b 5f 43 41 43 48 struct DISK_CACH
3510: 45 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 20 7b 0a E_INFORMATION {.
3520: 09 42 4f 4f 4c 45 41 4e 20 50 61 72 61 6d 65 74 .BOOLEAN Paramet
3530: 65 72 73 53 61 76 61 62 6c 65 3b 0a 09 42 4f 4f ersSavable;..BOO
3540: 4c 45 41 4e 20 52 65 61 64 43 61 63 68 65 45 6e LEAN ReadCacheEn
3550: 61 62 6c 65 64 3b 0a 09 42 4f 4f 4c 45 41 4e 20 abled;..BOOLEAN
3560: 57 72 69 74 65 43 61 63 68 65 45 6e 61 62 6c 65 WriteCacheEnable
3570: 64 3b 0a 09 44 49 53 4b 5f 43 41 43 48 45 5f 52 d;..DISK_CACHE_R
3580: 45 54 45 4e 54 49 4f 4e 5f 50 52 49 4f 52 49 54 ETENTION_PRIORIT
3590: 59 20 52 65 61 64 52 65 74 65 6e 74 69 6f 6e 50 Y ReadRetentionP
35a0: 72 69 6f 72 69 74 79 3b 0a 09 44 49 53 4b 5f 43 riority;..DISK_C
35b0: 41 43 48 45 5f 52 45 54 45 4e 54 49 4f 4e 5f 50 ACHE_RETENTION_P
35c0: 52 49 4f 52 49 54 59 20 57 72 69 74 65 52 65 74 RIORITY WriteRet
35d0: 65 6e 74 69 6f 6e 50 72 69 6f 72 69 74 79 3b 0a entionPriority;.
35e0: 09 57 4f 52 44 20 20 20 20 44 69 73 61 62 6c 65 .WORD Disable
35f0: 50 72 65 66 65 74 63 68 54 72 61 6e 73 66 65 72 PrefetchTransfer
3600: 4c 65 6e 67 74 68 3b 0a 09 42 4f 4f 4c 45 41 4e Length;..BOOLEAN
3610: 20 50 72 65 66 65 74 63 68 53 63 61 6c 61 72 3b PrefetchScalar;
3620: 0a 09 75 6e 69 6f 6e 20 7b 0a 09 09 73 74 72 75 ..union {...stru
3630: 63 74 20 5f 53 63 61 6c 61 72 50 72 65 66 65 74 ct _ScalarPrefet
3640: 63 68 20 7b 0a 09 09 09 57 4f 52 44 20 4d 69 6e ch {....WORD Min
3650: 69 6d 75 6d 3b 0a 09 09 09 57 4f 52 44 20 4d 61 imum;....WORD Ma
3660: 78 69 6d 75 6d 3b 0a 09 09 09 57 4f 52 44 20 4d ximum;....WORD M
3670: 61 78 69 6d 75 6d 42 6c 6f 63 6b 73 3b 0a 09 09 aximumBlocks;...
3680: 7d 0a 09 09 5f 53 63 61 6c 61 72 50 72 65 66 65 }..._ScalarPrefe
3690: 74 63 68 20 53 63 61 6c 61 72 50 72 65 66 65 74 tch ScalarPrefet
36a0: 63 68 3b 0a 09 09 73 74 72 75 63 74 20 5f 42 6c ch;...struct _Bl
36b0: 6f 63 6b 50 72 65 66 65 74 63 68 20 7b 0a 09 09 ockPrefetch {...
36c0: 09 57 4f 52 44 20 4d 69 6e 69 6d 75 6d 3b 0a 09 .WORD Minimum;..
36d0: 09 09 57 4f 52 44 20 4d 61 78 69 6d 75 6d 3b 0a ..WORD Maximum;.
36e0: 09 09 7d 0a 09 09 5f 42 6c 6f 63 6b 50 72 65 66 ..}..._BlockPref
36f0: 65 74 63 68 20 42 6c 6f 63 6b 50 72 65 66 65 74 etch BlockPrefet
3700: 63 68 3b 0a 09 7d 0a 7d 0a 61 6c 69 61 73 20 44 ch;..}.}.alias D
3710: 49 53 4b 5f 43 41 43 48 45 5f 49 4e 46 4f 52 4d ISK_CACHE_INFORM
3720: 41 54 49 4f 4e 2a 20 50 44 49 53 4b 5f 43 41 43 ATION* PDISK_CAC
3730: 48 45 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 3b 0a HE_INFORMATION;.
3740: 0a 65 6e 75 6d 20 44 45 54 45 43 54 49 4f 4e 5f .enum DETECTION_
3750: 54 59 50 45 20 7b 0a 09 44 65 74 65 63 74 4e 6f TYPE {..DetectNo
3760: 6e 65 2c 0a 09 44 65 74 65 63 74 49 6e 74 31 33 ne,..DetectInt13
3770: 2c 0a 09 44 65 74 65 63 74 45 78 49 6e 74 31 33 ,..DetectExInt13
3780: 0a 7d 0a 0a 73 74 72 75 63 74 20 44 49 53 4b 5f .}..struct DISK_
3790: 49 4e 54 31 33 5f 49 4e 46 4f 20 7b 0a 09 57 4f INT13_INFO {..WO
37a0: 52 44 20 20 44 72 69 76 65 53 65 6c 65 63 74 3b RD DriveSelect;
37b0: 0a 09 44 57 4f 52 44 20 4d 61 78 43 79 6c 69 6e ..DWORD MaxCylin
37c0: 64 65 72 73 3b 0a 09 57 4f 52 44 20 20 53 65 63 ders;..WORD Sec
37d0: 74 6f 72 73 50 65 72 54 72 61 63 6b 3b 0a 09 57 torsPerTrack;..W
37e0: 4f 52 44 20 20 4d 61 78 48 65 61 64 73 3b 0a 09 ORD MaxHeads;..
37f0: 57 4f 52 44 20 20 4e 75 6d 62 65 72 44 72 69 76 WORD NumberDriv
3800: 65 73 3b 0a 09 7d 0a 61 6c 69 61 73 20 44 49 53 es;..}.alias DIS
3810: 4b 5f 49 4e 54 31 33 5f 49 4e 46 4f 2a 20 50 44 K_INT13_INFO* PD
3820: 49 53 4b 5f 49 4e 54 31 33 5f 49 4e 46 4f 3b 0a ISK_INT13_INFO;.
3830: 0a 73 74 72 75 63 74 20 44 49 53 4b 5f 45 58 5f .struct DISK_EX_
3840: 49 4e 54 31 33 5f 49 4e 46 4f 20 7b 0a 09 57 4f INT13_INFO {..WO
3850: 52 44 20 20 20 20 45 78 42 75 66 66 65 72 53 69 RD ExBufferSi
3860: 7a 65 3b 0a 09 57 4f 52 44 20 20 20 20 45 78 46 ze;..WORD ExF
3870: 6c 61 67 73 3b 0a 09 44 57 4f 52 44 20 20 20 45 lags;..DWORD E
3880: 78 43 79 6c 69 6e 64 65 72 73 3b 0a 09 44 57 4f xCylinders;..DWO
3890: 52 44 20 20 20 45 78 48 65 61 64 73 3b 0a 09 44 RD ExHeads;..D
38a0: 57 4f 52 44 20 20 20 45 78 53 65 63 74 6f 72 73 WORD ExSectors
38b0: 50 65 72 54 72 61 63 6b 3b 0a 09 44 57 4f 52 44 PerTrack;..DWORD
38c0: 36 34 20 45 78 53 65 63 74 6f 72 73 50 65 72 44 64 ExSectorsPerD
38d0: 72 69 76 65 3b 0a 09 57 4f 52 44 20 20 20 20 45 rive;..WORD E
38e0: 78 53 65 63 74 6f 72 53 69 7a 65 3b 0a 09 57 4f xSectorSize;..WO
38f0: 52 44 20 20 20 20 45 78 52 65 73 65 72 76 65 64 RD ExReserved
3900: 3b 0a 7d 0a 61 6c 69 61 73 20 44 49 53 4b 5f 45 ;.}.alias DISK_E
3910: 58 5f 49 4e 54 31 33 5f 49 4e 46 4f 2a 20 50 44 X_INT13_INFO* PD
3920: 49 53 4b 5f 45 58 5f 49 4e 54 31 33 5f 49 4e 46 ISK_EX_INT13_INF
3930: 4f 3b 0a 0a 73 74 72 75 63 74 20 44 49 53 4b 5f O;..struct DISK_
3940: 44 45 54 45 43 54 49 4f 4e 5f 49 4e 46 4f 20 7b DETECTION_INFO {
3950: 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 ..DWORD
3960: 20 20 20 20 20 53 69 7a 65 4f 66 44 65 74 65 63 SizeOfDetec
3970: 74 49 6e 66 6f 3b 0a 09 44 45 54 45 43 54 49 4f tInfo;..DETECTIO
3980: 4e 5f 54 59 50 45 20 20 20 20 20 44 65 74 65 63 N_TYPE Detec
3990: 74 69 6f 6e 54 79 70 65 3b 0a 09 44 49 53 4b 5f tionType;..DISK_
39a0: 49 4e 54 31 33 5f 49 4e 46 4f 20 20 20 20 49 6e INT13_INFO In
39b0: 74 31 33 3b 0a 09 44 49 53 4b 5f 45 58 5f 49 4e t13;..DISK_EX_IN
39c0: 54 31 33 5f 49 4e 46 4f 20 45 78 49 6e 74 31 33 T13_INFO ExInt13
39d0: 3b 0a 7d 0a 61 6c 69 61 73 20 44 49 53 4b 5f 44 ;.}.alias DISK_D
39e0: 45 54 45 43 54 49 4f 4e 5f 49 4e 46 4f 2a 20 50 ETECTION_INFO* P
39f0: 44 49 53 4b 5f 44 45 54 45 43 54 49 4f 4e 5f 49 DISK_DETECTION_I
3a00: 4e 46 4f 3b 0a 0a 65 6e 75 6d 20 4d 45 44 49 41 NFO;..enum MEDIA
3a10: 5f 54 59 50 45 20 7b 0a 09 55 6e 6b 6e 6f 77 6e _TYPE {..Unknown
3a20: 2c 0a 09 46 35 5f 31 50 74 32 5f 35 31 32 2c 0a ,..F5_1Pt2_512,.
3a30: 09 46 33 5f 31 50 74 34 34 5f 35 31 32 2c 0a 09 .F3_1Pt44_512,..
3a40: 46 33 5f 32 50 74 38 38 5f 35 31 32 2c 0a 09 46 F3_2Pt88_512,..F
3a50: 33 5f 32 30 50 74 38 5f 35 31 32 2c 0a 09 46 33 3_20Pt8_512,..F3
3a60: 5f 37 32 30 5f 35 31 32 2c 0a 09 46 35 5f 33 36 _720_512,..F5_36
3a70: 30 5f 35 31 32 2c 0a 09 46 35 5f 33 32 30 5f 35 0_512,..F5_320_5
3a80: 31 32 2c 0a 09 46 35 5f 33 32 30 5f 31 30 32 34 12,..F5_320_1024
3a90: 2c 0a 09 46 35 5f 31 38 30 5f 35 31 32 2c 0a 09 ,..F5_180_512,..
3aa0: 46 35 5f 31 36 30 5f 35 31 32 2c 0a 09 52 65 6d F5_160_512,..Rem
3ab0: 6f 76 61 62 6c 65 4d 65 64 69 61 2c 0a 09 46 69 ovableMedia,..Fi
3ac0: 78 65 64 4d 65 64 69 61 2c 0a 09 46 33 5f 31 32 xedMedia,..F3_12
3ad0: 30 4d 5f 35 31 32 2c 0a 09 46 33 5f 36 34 30 5f 0M_512,..F3_640_
3ae0: 35 31 32 2c 0a 09 46 35 5f 36 34 30 5f 35 31 32 512,..F5_640_512
3af0: 2c 0a 09 46 35 5f 37 32 30 5f 35 31 32 2c 0a 09 ,..F5_720_512,..
3b00: 46 33 5f 31 50 74 32 5f 35 31 32 2c 0a 09 46 33 F3_1Pt2_512,..F3
3b10: 5f 31 50 74 32 33 5f 31 30 32 34 2c 0a 09 46 35 _1Pt23_1024,..F5
3b20: 5f 31 50 74 32 33 5f 31 30 32 34 2c 0a 09 46 33 _1Pt23_1024,..F3
3b30: 5f 31 32 38 4d 62 5f 35 31 32 2c 0a 09 46 33 5f _128Mb_512,..F3_
3b40: 32 33 30 4d 62 5f 35 31 32 2c 0a 09 46 38 5f 32 230Mb_512,..F8_2
3b50: 35 36 5f 31 32 38 2c 0a 09 46 33 5f 32 30 30 4d 56_128,..F3_200M
3b60: 62 5f 35 31 32 2c 0a 09 46 33 5f 32 34 30 4d 5f b_512,..F3_240M_
3b70: 35 31 32 2c 0a 09 46 33 5f 33 32 4d 5f 35 31 32 512,..F3_32M_512
3b80: 0a 7d 0a 61 6c 69 61 73 20 4d 45 44 49 41 5f 54 .}.alias MEDIA_T
3b90: 59 50 45 2a 20 50 4d 45 44 49 41 5f 54 59 50 45 YPE* PMEDIA_TYPE
3ba0: 3b 0a 0a 73 74 72 75 63 74 20 44 49 53 4b 5f 47 ;..struct DISK_G
3bb0: 45 4f 4d 45 54 52 59 20 7b 0a 09 4c 41 52 47 45 EOMETRY {..LARGE
3bc0: 5f 49 4e 54 45 47 45 52 20 43 79 6c 69 6e 64 65 _INTEGER Cylinde
3bd0: 72 73 3b 0a 09 4d 45 44 49 41 5f 54 59 50 45 20 rs;..MEDIA_TYPE
3be0: 20 20 20 4d 65 64 69 61 54 79 70 65 3b 0a 09 44 MediaType;..D
3bf0: 57 4f 52 44 20 20 20 20 20 20 20 20 20 54 72 61 WORD Tra
3c00: 63 6b 73 50 65 72 43 79 6c 69 6e 64 65 72 3b 0a cksPerCylinder;.
3c10: 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 53 .DWORD S
3c20: 65 63 74 6f 72 73 50 65 72 54 72 61 63 6b 3b 0a ectorsPerTrack;.
3c30: 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 42 .DWORD B
3c40: 79 74 65 73 50 65 72 53 65 63 74 6f 72 3b 0a 7d ytesPerSector;.}
3c50: 0a 61 6c 69 61 73 20 44 49 53 4b 5f 47 45 4f 4d .alias DISK_GEOM
3c60: 45 54 52 59 2a 20 50 44 49 53 4b 5f 47 45 4f 4d ETRY* PDISK_GEOM
3c70: 45 54 52 59 3b 0a 0a 73 74 72 75 63 74 20 44 49 ETRY;..struct DI
3c80: 53 4b 5f 47 45 4f 4d 45 54 52 59 5f 45 58 20 7b SK_GEOMETRY_EX {
3c90: 0a 09 44 49 53 4b 5f 47 45 4f 4d 45 54 52 59 20 ..DISK_GEOMETRY
3ca0: 47 65 6f 6d 65 74 72 79 3b 0a 09 4c 41 52 47 45 Geometry;..LARGE
3cb0: 5f 49 4e 54 45 47 45 52 20 44 69 73 6b 53 69 7a _INTEGER DiskSiz
3cc0: 65 3b 0a 09 42 59 54 45 20 20 20 20 20 20 20 20 e;..BYTE
3cd0: 20 20 5f 44 61 74 61 3b 0a 0a 09 42 59 54 45 2a _Data;...BYTE*
3ce0: 20 44 61 74 61 28 29 20 7b 20 72 65 74 75 72 6e Data() { return
3cf0: 20 26 5f 44 61 74 61 3b 20 7d 0a 7d 0a 61 6c 69 &_Data; }.}.ali
3d00: 61 73 20 44 49 53 4b 5f 47 45 4f 4d 45 54 52 59 as DISK_GEOMETRY
3d10: 5f 45 58 2a 20 50 44 49 53 4b 5f 47 45 4f 4d 45 _EX* PDISK_GEOME
3d20: 54 52 59 5f 45 58 3b 0a 0a 73 74 72 75 63 74 20 TRY_EX;..struct
3d30: 44 49 53 4b 5f 47 52 4f 57 5f 50 41 52 54 49 54 DISK_GROW_PARTIT
3d40: 49 4f 4e 20 7b 0a 09 44 57 4f 52 44 20 20 20 20 ION {..DWORD
3d50: 20 20 20 20 20 50 61 72 74 69 74 69 6f 6e 4e 75 PartitionNu
3d60: 6d 62 65 72 3b 0a 09 4c 41 52 47 45 5f 49 4e 54 mber;..LARGE_INT
3d70: 45 47 45 52 20 42 79 74 65 73 54 6f 47 72 6f 77 EGER BytesToGrow
3d80: 3b 0a 7d 0a 61 6c 69 61 73 20 44 49 53 4b 5f 47 ;.}.alias DISK_G
3d90: 52 4f 57 5f 50 41 52 54 49 54 49 4f 4e 2a 20 50 ROW_PARTITION* P
3da0: 44 49 53 4b 5f 47 52 4f 57 5f 50 41 52 54 49 54 DISK_GROW_PARTIT
3db0: 49 4f 4e 3b 0a 0a 73 74 72 75 63 74 20 44 49 53 ION;..struct DIS
3dc0: 4b 5f 50 41 52 54 49 54 49 4f 4e 5f 49 4e 46 4f K_PARTITION_INFO
3dd0: 20 7b 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20 {..DWORD
3de0: 20 20 20 20 53 69 7a 65 4f 66 50 61 72 74 69 74 SizeOfPartit
3df0: 69 6f 6e 49 6e 66 6f 3b 0a 09 50 41 52 54 49 54 ionInfo;..PARTIT
3e00: 49 4f 4e 5f 53 54 59 4c 45 20 50 61 72 74 69 74 ION_STYLE Partit
3e10: 69 6f 6e 53 74 79 6c 65 3b 0a 09 75 6e 69 6f 6e ionStyle;..union
3e20: 20 7b 0a 09 09 2f 2f 73 74 72 75 63 74 20 7b 0a {...//struct {.
3e30: 09 09 09 44 57 4f 52 44 20 53 69 67 6e 61 74 75 ...DWORD Signatu
3e40: 72 65 3b 0a 09 09 2f 2f 7d 20 4d 62 72 3b 0a 09 re;...//} Mbr;..
3e50: 09 2f 2f 73 74 72 75 63 74 20 7b 0a 09 09 09 47 .//struct {....G
3e60: 55 49 44 20 44 69 73 6b 49 64 3b 0a 09 09 2f 2f UID DiskId;...//
3e70: 7d 20 47 70 74 3b 0a 09 7d 0a 7d 0a 61 6c 69 61 } Gpt;..}.}.alia
3e80: 73 20 44 49 53 4b 5f 50 41 52 54 49 54 49 4f 4e s DISK_PARTITION
3e90: 5f 49 4e 46 4f 2a 20 50 44 49 53 4b 5f 50 41 52 _INFO* PDISK_PAR
3ea0: 54 49 54 49 4f 4e 5f 49 4e 46 4f 3b 0a 0a 73 74 TITION_INFO;..st
3eb0: 72 75 63 74 20 44 49 53 4b 5f 50 45 52 46 4f 52 ruct DISK_PERFOR
3ec0: 4d 41 4e 43 45 20 7b 0a 09 4c 41 52 47 45 5f 49 MANCE {..LARGE_I
3ed0: 4e 54 45 47 45 52 20 42 79 74 65 73 52 65 61 64 NTEGER BytesRead
3ee0: 3b 0a 09 4c 41 52 47 45 5f 49 4e 54 45 47 45 52 ;..LARGE_INTEGER
3ef0: 20 42 79 74 65 73 57 72 69 74 74 65 6e 3b 0a 09 BytesWritten;..
3f00: 4c 41 52 47 45 5f 49 4e 54 45 47 45 52 20 52 65 LARGE_INTEGER Re
3f10: 61 64 54 69 6d 65 3b 0a 09 4c 41 52 47 45 5f 49 adTime;..LARGE_I
3f20: 4e 54 45 47 45 52 20 57 72 69 74 65 54 69 6d 65 NTEGER WriteTime
3f30: 3b 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 ;..DWORD
3f40: 20 52 65 61 64 43 6f 75 6e 74 3b 0a 09 44 57 4f ReadCount;..DWO
3f50: 52 44 20 20 20 20 20 20 20 20 20 57 72 69 74 65 RD Write
3f60: 43 6f 75 6e 74 3b 0a 09 44 57 4f 52 44 20 20 20 Count;..DWORD
3f70: 20 20 20 20 20 20 51 75 65 75 65 44 65 70 74 68 QueueDepth
3f80: 3b 0a 7d 0a 61 6c 69 61 73 20 44 49 53 4b 5f 50 ;.}.alias DISK_P
3f90: 45 52 46 4f 52 4d 41 4e 43 45 2a 20 50 44 49 53 ERFORMANCE* PDIS
3fa0: 4b 5f 50 45 52 46 4f 52 4d 41 4e 43 45 3b 0a 0a K_PERFORMANCE;..
3fb0: 73 74 72 75 63 74 20 44 49 53 4b 5f 52 45 43 4f struct DISK_RECO
3fc0: 52 44 20 7b 0a 09 4c 41 52 47 45 5f 49 4e 54 45 RD {..LARGE_INTE
3fd0: 47 45 52 20 42 79 74 65 4f 66 66 73 65 74 3b 0a GER ByteOffset;.
3fe0: 09 4c 41 52 47 45 5f 49 4e 54 45 47 45 52 20 53 .LARGE_INTEGER S
3ff0: 74 61 72 74 54 69 6d 65 3b 0a 09 4c 41 52 47 45 tartTime;..LARGE
4000: 5f 49 4e 54 45 47 45 52 20 45 6e 64 54 69 6d 65 _INTEGER EndTime
4010: 3b 0a 09 50 56 4f 49 44 20 20 20 20 20 20 20 20 ;..PVOID
4020: 20 56 69 72 74 75 61 6c 41 64 64 72 65 73 73 3b VirtualAddress;
4030: 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 ..DWORD
4040: 4e 75 6d 62 65 72 4f 66 42 79 74 65 73 3b 0a 09 NumberOfBytes;..
4050: 42 59 54 45 20 20 20 20 20 20 20 20 20 20 44 65 BYTE De
4060: 76 69 63 65 4e 75 6d 62 65 72 3b 0a 09 42 4f 4f viceNumber;..BOO
4070: 4c 45 41 4e 20 20 20 20 20 20 20 52 65 61 64 52 LEAN ReadR
4080: 65 71 75 65 73 74 3b 0a 7d 0a 61 6c 69 61 73 20 equest;.}.alias
4090: 44 49 53 4b 5f 52 45 43 4f 52 44 2a 20 50 44 49 DISK_RECORD* PDI
40a0: 53 4b 5f 52 45 43 4f 52 44 3b 0a 0a 73 74 72 75 SK_RECORD;..stru
40b0: 63 74 20 44 49 53 4b 5f 4c 4f 47 47 49 4e 47 20 ct DISK_LOGGING
40c0: 7b 0a 09 42 59 54 45 20 20 46 75 6e 63 74 69 6f {..BYTE Functio
40d0: 6e 3b 0a 09 50 56 4f 49 44 20 42 75 66 66 65 72 n;..PVOID Buffer
40e0: 41 64 64 72 65 73 73 3b 0a 09 44 57 4f 52 44 20 Address;..DWORD
40f0: 42 75 66 66 65 72 53 69 7a 65 3b 0a 7d 0a 61 6c BufferSize;.}.al
4100: 69 61 73 20 44 49 53 4b 5f 4c 4f 47 47 49 4e 47 ias DISK_LOGGING
4110: 2a 20 50 44 49 53 4b 5f 4c 4f 47 47 49 4e 47 3b * PDISK_LOGGING;
4120: 0a 0a 73 74 72 75 63 74 20 44 49 53 4b 51 55 4f ..struct DISKQUO
4130: 54 41 5f 55 53 45 52 5f 49 4e 46 4f 52 4d 41 54 TA_USER_INFORMAT
4140: 49 4f 4e 20 7b 0a 09 4c 4f 4e 47 4c 4f 4e 47 20 ION {..LONGLONG
4150: 51 75 6f 74 61 55 73 65 64 3b 0a 09 4c 4f 4e 47 QuotaUsed;..LONG
4160: 4c 4f 4e 47 20 51 75 6f 74 61 54 68 72 65 73 68 LONG QuotaThresh
4170: 6f 6c 64 3b 0a 09 4c 4f 4e 47 4c 4f 4e 47 20 51 old;..LONGLONG Q
4180: 75 6f 74 61 4c 69 6d 69 74 3b 0a 7d 0a 61 6c 69 uotaLimit;.}.ali
4190: 61 73 20 44 49 53 4b 51 55 4f 54 41 5f 55 53 45 as DISKQUOTA_USE
41a0: 52 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 2a 20 50 R_INFORMATION* P
41b0: 44 49 53 4b 51 55 4f 54 41 5f 55 53 45 52 5f 49 DISKQUOTA_USER_I
41c0: 4e 46 4f 52 4d 41 54 49 4f 4e 3b 0a 0a 73 74 72 NFORMATION;..str
41d0: 75 63 74 20 46 4f 52 4d 41 54 5f 50 41 52 41 4d uct FORMAT_PARAM
41e0: 45 54 45 52 53 20 7b 0a 09 4d 45 44 49 41 5f 54 ETERS {..MEDIA_T
41f0: 59 50 45 20 4d 65 64 69 61 54 79 70 65 3b 0a 09 YPE MediaType;..
4200: 44 57 4f 52 44 20 20 20 20 20 20 53 74 61 72 74 DWORD Start
4210: 43 79 6c 69 6e 64 65 72 4e 75 6d 62 65 72 3b 0a CylinderNumber;.
4220: 09 44 57 4f 52 44 20 20 20 20 20 20 45 6e 64 43 .DWORD EndC
4230: 79 6c 69 6e 64 65 72 4e 75 6d 62 65 72 3b 0a 09 ylinderNumber;..
4240: 44 57 4f 52 44 20 20 20 20 20 20 53 74 61 72 74 DWORD Start
4250: 48 65 61 64 4e 75 6d 62 65 72 3b 0a 09 44 57 4f HeadNumber;..DWO
4260: 52 44 20 20 20 20 20 20 45 6e 64 48 65 61 64 4e RD EndHeadN
4270: 75 6d 62 65 72 3b 0a 7d 0a 61 6c 69 61 73 20 46 umber;.}.alias F
4280: 4f 52 4d 41 54 5f 50 41 52 41 4d 45 54 45 52 53 ORMAT_PARAMETERS
4290: 2a 20 50 46 4f 52 4d 41 54 5f 50 41 52 41 4d 45 * PFORMAT_PARAME
42a0: 54 45 52 53 3b 0a 0a 73 74 72 75 63 74 20 46 4f TERS;..struct FO
42b0: 52 4d 41 54 5f 45 58 5f 50 41 52 41 4d 45 54 45 RMAT_EX_PARAMETE
42c0: 52 53 20 7b 0a 09 4d 45 44 49 41 5f 54 59 50 45 RS {..MEDIA_TYPE
42d0: 20 4d 65 64 69 61 54 79 70 65 3b 0a 09 44 57 4f MediaType;..DWO
42e0: 52 44 20 20 20 20 20 20 53 74 61 72 74 43 79 6c RD StartCyl
42f0: 69 6e 64 65 72 4e 75 6d 62 65 72 3b 0a 09 44 57 inderNumber;..DW
4300: 4f 52 44 20 20 20 20 20 20 45 6e 64 43 79 6c 69 ORD EndCyli
4310: 6e 64 65 72 4e 75 6d 62 65 72 3b 0a 09 44 57 4f nderNumber;..DWO
4320: 52 44 20 20 20 20 20 20 53 74 61 72 74 48 65 61 RD StartHea
4330: 64 4e 75 6d 62 65 72 3b 0a 09 44 57 4f 52 44 20 dNumber;..DWORD
4340: 20 20 20 20 20 45 6e 64 48 65 61 64 4e 75 6d 62 EndHeadNumb
4350: 65 72 3b 0a 09 57 4f 52 44 20 20 20 20 20 20 20 er;..WORD
4360: 46 6f 72 6d 61 74 47 61 70 4c 65 6e 67 74 68 3b FormatGapLength;
4370: 0a 09 57 4f 52 44 20 20 20 20 20 20 20 53 65 63 ..WORD Sec
4380: 74 6f 72 73 50 65 72 54 72 61 63 6b 3b 0a 09 57 torsPerTrack;..W
4390: 4f 52 44 20 20 20 20 20 20 20 5f 53 65 63 74 6f ORD _Secto
43a0: 72 4e 75 6d 62 65 72 3b 0a 0a 09 57 4f 52 44 2a rNumber;...WORD*
43b0: 20 53 65 63 74 6f 72 4e 75 6d 62 65 72 28 29 20 SectorNumber()
43c0: 7b 20 72 65 74 75 72 6e 20 26 5f 53 65 63 74 6f { return &_Secto
43d0: 72 4e 75 6d 62 65 72 3b 20 7d 0a 7d 0a 61 6c 69 rNumber; }.}.ali
43e0: 61 73 20 46 4f 52 4d 41 54 5f 45 58 5f 50 41 52 as FORMAT_EX_PAR
43f0: 41 4d 45 54 45 52 53 2a 20 50 46 4f 52 4d 41 54 AMETERS* PFORMAT
4400: 5f 45 58 5f 50 41 52 41 4d 45 54 45 52 53 3b 0a _EX_PARAMETERS;.
4410: 0a 73 74 72 75 63 74 20 47 45 54 5f 4c 45 4e 47 .struct GET_LENG
4420: 54 48 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 20 7b TH_INFORMATION {
4430: 0a 09 4c 41 52 47 45 5f 49 4e 54 45 47 45 52 20 ..LARGE_INTEGER
4440: 4c 65 6e 67 74 68 3b 0a 7d 0a 0a 73 74 72 75 63 Length;.}..struc
4450: 74 20 48 49 53 54 4f 47 52 41 4d 5f 42 55 43 4b t HISTOGRAM_BUCK
4460: 45 54 20 7b 0a 09 44 57 4f 52 44 20 52 65 61 64 ET {..DWORD Read
4470: 73 3b 0a 09 44 57 4f 52 44 20 57 72 69 74 65 73 s;..DWORD Writes
4480: 3b 0a 7d 0a 61 6c 69 61 73 20 48 49 53 54 4f 47 ;.}.alias HISTOG
4490: 52 41 4d 5f 42 55 43 4b 45 54 2a 20 50 48 49 53 RAM_BUCKET* PHIS
44a0: 54 4f 47 52 41 4d 5f 42 55 43 4b 45 54 3b 0a 0a TOGRAM_BUCKET;..
44b0: 73 74 72 75 63 74 20 44 49 53 4b 5f 48 49 53 54 struct DISK_HIST
44c0: 4f 47 52 41 4d 20 7b 0a 09 4c 41 52 47 45 5f 49 OGRAM {..LARGE_I
44d0: 4e 54 45 47 45 52 20 20 20 20 20 44 69 73 6b 53 NTEGER DiskS
44e0: 69 7a 65 3b 0a 09 4c 41 52 47 45 5f 49 4e 54 45 ize;..LARGE_INTE
44f0: 47 45 52 20 20 20 20 20 53 74 61 72 74 3b 0a 09 GER Start;..
4500: 4c 41 52 47 45 5f 49 4e 54 45 47 45 52 20 20 20 LARGE_INTEGER
4510: 20 20 45 6e 64 3b 0a 09 4c 41 52 47 45 5f 49 4e End;..LARGE_IN
4520: 54 45 47 45 52 20 20 20 20 20 41 76 65 72 61 67 TEGER Averag
4530: 65 3b 0a 09 4c 41 52 47 45 5f 49 4e 54 45 47 45 e;..LARGE_INTEGE
4540: 52 20 20 20 20 20 41 76 65 72 61 67 65 52 65 61 R AverageRea
4550: 64 3b 0a 09 4c 41 52 47 45 5f 49 4e 54 45 47 45 d;..LARGE_INTEGE
4560: 52 20 20 20 20 20 41 76 65 72 61 67 65 57 72 69 R AverageWri
4570: 74 65 3b 0a 09 44 57 4f 52 44 20 20 20 20 20 20 te;..DWORD
4580: 20 20 20 20 20 20 20 47 72 61 6e 75 6c 61 72 69 Granulari
4590: 74 79 3b 0a 09 44 57 4f 52 44 20 20 20 20 20 20 ty;..DWORD
45a0: 20 20 20 20 20 20 20 53 69 7a 65 3b 0a 09 44 57 Size;..DW
45b0: 4f 52 44 20 20 20 20 20 20 20 20 20 20 20 20 20 ORD
45c0: 52 65 61 64 43 6f 75 6e 74 3b 0a 09 44 57 4f 52 ReadCount;..DWOR
45d0: 44 20 20 20 20 20 20 20 20 20 20 20 20 20 57 72 D Wr
45e0: 69 74 65 43 6f 75 6e 74 3b 0a 09 50 48 49 53 54 iteCount;..PHIST
45f0: 4f 47 52 41 4d 5f 42 55 43 4b 45 54 20 48 69 73 OGRAM_BUCKET His
4600: 74 6f 67 72 61 6d 3b 0a 7d 0a 61 6c 69 61 73 20 togram;.}.alias
4610: 44 49 53 4b 5f 48 49 53 54 4f 47 52 41 4d 2a 20 DISK_HISTOGRAM*
4620: 50 44 49 53 4b 5f 48 49 53 54 4f 47 52 41 4d 3b PDISK_HISTOGRAM;
4630: 0a 0a 73 74 72 75 63 74 20 44 49 53 4b 5f 45 58 ..struct DISK_EX
4640: 54 45 4e 54 20 7b 0a 09 44 57 4f 52 44 20 20 20 TENT {..DWORD
4650: 20 20 20 20 20 20 44 69 73 6b 4e 75 6d 62 65 72 DiskNumber
4660: 3b 0a 09 4c 41 52 47 45 5f 49 4e 54 45 47 45 52 ;..LARGE_INTEGER
4670: 20 53 74 61 72 74 69 6e 67 4f 66 66 73 65 74 3b StartingOffset;
4680: 0a 09 4c 41 52 47 45 5f 49 4e 54 45 47 45 52 20 ..LARGE_INTEGER
4690: 45 78 74 65 6e 74 4c 65 6e 67 74 68 3b 0a 7d 0a ExtentLength;.}.
46a0: 61 6c 69 61 73 20 44 49 53 4b 5f 45 58 54 45 4e alias DISK_EXTEN
46b0: 54 2a 20 50 44 49 53 4b 5f 45 58 54 45 4e 54 3b T* PDISK_EXTENT;
46c0: 0a 0a 73 74 72 75 63 74 20 56 4f 4c 55 4d 45 5f ..struct VOLUME_
46d0: 44 49 53 4b 5f 45 58 54 45 4e 54 53 20 7b 0a 09 DISK_EXTENTS {..
46e0: 44 57 4f 52 44 20 20 20 20 20 20 20 4e 75 6d 62 DWORD Numb
46f0: 65 72 4f 66 44 69 73 6b 45 78 74 65 6e 74 73 3b erOfDiskExtents;
4700: 0a 09 44 49 53 4b 5f 45 58 54 45 4e 54 20 5f 45 ..DISK_EXTENT _E
4710: 78 74 65 6e 74 73 3b 0a 0a 09 44 49 53 4b 5f 45 xtents;...DISK_E
4720: 58 54 45 4e 54 2a 20 45 78 74 65 6e 74 73 28 29 XTENT* Extents()
4730: 20 7b 20 72 65 74 75 72 6e 20 26 5f 45 78 74 65 { return &_Exte
4740: 6e 74 73 3b 20 7d 0a 7d 0a 61 6c 69 61 73 20 56 nts; }.}.alias V
4750: 4f 4c 55 4d 45 5f 44 49 53 4b 5f 45 58 54 45 4e OLUME_DISK_EXTEN
4760: 54 53 2a 20 50 56 4f 4c 55 4d 45 5f 44 49 53 4b TS* PVOLUME_DISK
4770: 5f 45 58 54 45 4e 54 53 3b 0a 0a 73 74 72 75 63 _EXTENTS;..struc
4780: 74 20 50 41 52 54 49 54 49 4f 4e 5f 49 4e 46 4f t PARTITION_INFO
4790: 52 4d 41 54 49 4f 4e 20 7b 0a 09 4c 41 52 47 45 RMATION {..LARGE
47a0: 5f 49 4e 54 45 47 45 52 20 53 74 61 72 74 69 6e _INTEGER Startin
47b0: 67 4f 66 66 73 65 74 3b 0a 09 4c 41 52 47 45 5f gOffset;..LARGE_
47c0: 49 4e 54 45 47 45 52 20 50 61 72 74 69 74 69 6f INTEGER Partitio
47d0: 6e 4c 65 6e 67 74 68 3b 0a 09 44 57 4f 52 44 20 nLength;..DWORD
47e0: 20 20 20 20 20 20 20 20 48 69 64 64 65 6e 53 65 HiddenSe
47f0: 63 74 6f 72 73 3b 0a 09 44 57 4f 52 44 20 20 20 ctors;..DWORD
4800: 20 20 20 20 20 20 50 61 72 74 69 74 69 6f 6e 4e PartitionN
4810: 75 6d 62 65 72 3b 0a 09 42 59 54 45 20 20 20 20 umber;..BYTE
4820: 20 20 20 20 20 20 50 61 72 74 69 74 69 6f 6e 54 PartitionT
4830: 79 70 65 3b 0a 09 42 4f 4f 4c 45 41 4e 20 20 20 ype;..BOOLEAN
4840: 20 20 20 20 42 6f 6f 74 49 6e 64 69 63 61 74 6f BootIndicato
4850: 72 3b 0a 09 42 4f 4f 4c 45 41 4e 20 20 20 20 20 r;..BOOLEAN
4860: 20 20 52 65 63 6f 67 6e 69 7a 65 64 50 61 72 74 RecognizedPart
4870: 69 74 69 6f 6e 3b 0a 09 42 4f 4f 4c 45 41 4e 20 ition;..BOOLEAN
4880: 20 20 20 20 20 20 52 65 77 72 69 74 65 50 61 72 RewritePar
4890: 74 69 74 69 6f 6e 3b 0a 7d 0a 61 6c 69 61 73 20 tition;.}.alias
48a0: 50 41 52 54 49 54 49 4f 4e 5f 49 4e 46 4f 52 4d PARTITION_INFORM
48b0: 41 54 49 4f 4e 2a 20 50 50 41 52 54 49 54 49 4f ATION* PPARTITIO
48c0: 4e 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 3b 0a 0a N_INFORMATION;..
48d0: 73 74 72 75 63 74 20 44 52 49 56 45 5f 4c 41 59 struct DRIVE_LAY
48e0: 4f 55 54 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 20 OUT_INFORMATION
48f0: 7b 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 {..DWORD
4900: 20 20 20 20 20 20 20 20 20 50 61 72 74 69 74 69 Partiti
4910: 6f 6e 43 6f 75 6e 74 3b 0a 09 44 57 4f 52 44 20 onCount;..DWORD
4920: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
4930: 53 69 67 6e 61 74 75 72 65 3b 0a 09 50 41 52 54 Signature;..PART
4940: 49 54 49 4f 4e 5f 49 4e 46 4f 52 4d 41 54 49 4f ITION_INFORMATIO
4950: 4e 20 5f 50 61 72 74 69 74 69 6f 6e 45 6e 74 72 N _PartitionEntr
4960: 79 3b 0a 0a 09 50 41 52 54 49 54 49 4f 4e 5f 49 y;...PARTITION_I
4970: 4e 46 4f 52 4d 41 54 49 4f 4e 2a 20 50 61 72 74 NFORMATION* Part
4980: 69 74 69 6f 6e 45 6e 74 72 79 28 29 20 7b 20 72 itionEntry() { r
4990: 65 74 75 72 6e 20 26 5f 50 61 72 74 69 74 69 6f eturn &_Partitio
49a0: 6e 45 6e 74 72 79 3b 20 7d 0a 7d 0a 61 6c 69 61 nEntry; }.}.alia
49b0: 73 20 44 52 49 56 45 5f 4c 41 59 4f 55 54 5f 49 s DRIVE_LAYOUT_I
49c0: 4e 46 4f 52 4d 41 54 49 4f 4e 2a 20 50 44 52 49 NFORMATION* PDRI
49d0: 56 45 5f 4c 41 59 4f 55 54 5f 49 4e 46 4f 52 4d VE_LAYOUT_INFORM
49e0: 41 54 49 4f 4e 3b 0a 0a 73 74 72 75 63 74 20 44 ATION;..struct D
49f0: 52 49 56 45 5f 4c 41 59 4f 55 54 5f 49 4e 46 4f RIVE_LAYOUT_INFO
4a00: 52 4d 41 54 49 4f 4e 5f 47 50 54 20 7b 0a 09 47 RMATION_GPT {..G
4a10: 55 49 44 20 20 20 20 20 20 20 20 20 20 44 69 73 UID Dis
4a20: 6b 49 64 3b 0a 09 4c 41 52 47 45 5f 49 4e 54 45 kId;..LARGE_INTE
4a30: 47 45 52 20 53 74 61 72 74 69 6e 67 55 73 61 62 GER StartingUsab
4a40: 6c 65 4f 66 66 73 65 74 3b 0a 09 4c 41 52 47 45 leOffset;..LARGE
4a50: 5f 49 4e 54 45 47 45 52 20 55 73 61 62 6c 65 4c _INTEGER UsableL
4a60: 65 6e 67 74 68 3b 0a 09 55 4c 4f 4e 47 20 20 20 ength;..ULONG
4a70: 20 20 20 20 20 20 4d 61 78 50 61 72 74 69 74 69 MaxPartiti
4a80: 6f 6e 43 6f 75 6e 74 3b 0a 7d 0a 61 6c 69 61 73 onCount;.}.alias
4a90: 20 44 52 49 56 45 5f 4c 41 59 4f 55 54 5f 49 4e DRIVE_LAYOUT_IN
4aa0: 46 4f 52 4d 41 54 49 4f 4e 5f 47 50 54 2a 20 50 FORMATION_GPT* P
4ab0: 44 52 49 56 45 5f 4c 41 59 4f 55 54 5f 49 4e 46 DRIVE_LAYOUT_INF
4ac0: 4f 52 4d 41 54 49 4f 4e 5f 47 50 54 3b 0a 0a 73 ORMATION_GPT;..s
4ad0: 74 72 75 63 74 20 44 52 49 56 45 5f 4c 41 59 4f truct DRIVE_LAYO
4ae0: 55 54 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 5f 4d UT_INFORMATION_M
4af0: 42 52 20 7b 0a 09 55 4c 4f 4e 47 20 53 69 67 6e BR {..ULONG Sign
4b00: 61 74 75 72 65 3b 0a 7d 0a 61 6c 69 61 73 20 44 ature;.}.alias D
4b10: 52 49 56 45 5f 4c 41 59 4f 55 54 5f 49 4e 46 4f RIVE_LAYOUT_INFO
4b20: 52 4d 41 54 49 4f 4e 5f 4d 42 52 2a 20 50 44 52 RMATION_MBR* PDR
4b30: 49 56 45 5f 4c 41 59 4f 55 54 5f 49 4e 46 4f 52 IVE_LAYOUT_INFOR
4b40: 4d 41 54 49 4f 4e 5f 4d 42 52 3b 0a 0a 73 74 72 MATION_MBR;..str
4b50: 75 63 74 20 50 41 52 54 49 54 49 4f 4e 5f 49 4e uct PARTITION_IN
4b60: 46 4f 52 4d 41 54 49 4f 4e 5f 4d 42 52 20 7b 0a FORMATION_MBR {.
4b70: 09 42 59 54 45 20 20 20 20 50 61 72 74 69 74 69 .BYTE Partiti
4b80: 6f 6e 54 79 70 65 3b 0a 09 42 4f 4f 4c 45 41 4e onType;..BOOLEAN
4b90: 20 42 6f 6f 74 49 6e 64 69 63 61 74 6f 72 3b 0a BootIndicator;.
4ba0: 09 42 4f 4f 4c 45 41 4e 20 52 65 63 6f 67 6e 69 .BOOLEAN Recogni
4bb0: 7a 65 64 50 61 72 74 69 74 69 6f 6e 3b 0a 09 44 zedPartition;..D
4bc0: 57 4f 52 44 20 20 20 48 69 64 64 65 6e 53 65 63 WORD HiddenSec
4bd0: 74 6f 72 73 3b 0a 7d 0a 0a 73 74 72 75 63 74 20 tors;.}..struct
4be0: 50 41 52 54 49 54 49 4f 4e 5f 49 4e 46 4f 52 4d PARTITION_INFORM
4bf0: 41 54 49 4f 4e 5f 47 50 54 20 7b 0a 09 47 55 49 ATION_GPT {..GUI
4c00: 44 20 20 20 20 20 20 50 61 72 74 69 74 69 6f 6e D Partition
4c10: 54 79 70 65 3b 0a 09 47 55 49 44 20 20 20 20 20 Type;..GUID
4c20: 20 50 61 72 74 69 74 69 6f 6e 49 64 3b 0a 09 44 PartitionId;..D
4c30: 57 4f 52 44 36 34 20 20 20 41 74 74 72 69 62 75 WORD64 Attribu
4c40: 74 65 73 3b 0a 09 57 43 48 41 52 5b 33 36 5d 20 tes;..WCHAR[36]
4c50: 4e 61 6d 65 3b 0a 7d 0a 0a 73 74 72 75 63 74 20 Name;.}..struct
4c60: 50 41 52 54 49 54 49 4f 4e 5f 49 4e 46 4f 52 4d PARTITION_INFORM
4c70: 41 54 49 4f 4e 5f 45 58 20 7b 0a 09 50 41 52 54 ATION_EX {..PART
4c80: 49 54 49 4f 4e 5f 53 54 59 4c 45 20 50 61 72 74 ITION_STYLE Part
4c90: 69 74 69 6f 6e 53 74 79 6c 65 3b 0a 09 4c 41 52 itionStyle;..LAR
4ca0: 47 45 5f 49 4e 54 45 47 45 52 20 20 20 53 74 61 GE_INTEGER Sta
4cb0: 72 74 69 6e 67 4f 66 66 73 65 74 3b 0a 09 4c 41 rtingOffset;..LA
4cc0: 52 47 45 5f 49 4e 54 45 47 45 52 20 20 20 50 61 RGE_INTEGER Pa
4cd0: 72 74 69 74 69 6f 6e 4c 65 6e 67 74 68 3b 0a 09 rtitionLength;..
4ce0: 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 20 20 DWORD
4cf0: 50 61 72 74 69 74 69 6f 6e 4e 75 6d 62 65 72 3b PartitionNumber;
4d00: 0a 09 42 4f 4f 4c 45 41 4e 20 20 20 20 20 20 20 ..BOOLEAN
4d10: 20 20 52 65 77 72 69 74 65 50 61 72 74 69 74 69 RewritePartiti
4d20: 6f 6e 3b 0a 09 75 6e 69 6f 6e 20 7b 0a 09 09 50 on;..union {...P
4d30: 41 52 54 49 54 49 4f 4e 5f 49 4e 46 4f 52 4d 41 ARTITION_INFORMA
4d40: 54 49 4f 4e 5f 4d 42 52 20 4d 62 72 3b 0a 09 09 TION_MBR Mbr;...
4d50: 50 41 52 54 49 54 49 4f 4e 5f 49 4e 46 4f 52 4d PARTITION_INFORM
4d60: 41 54 49 4f 4e 5f 47 50 54 20 47 70 74 3b 0a 09 ATION_GPT Gpt;..
4d70: 7d 0a 7d 0a 0a 73 74 72 75 63 74 20 44 52 49 56 }.}..struct DRIV
4d80: 45 5f 4c 41 59 4f 55 54 5f 49 4e 46 4f 52 4d 41 E_LAYOUT_INFORMA
4d90: 54 49 4f 4e 5f 45 58 20 7b 0a 09 44 57 4f 52 44 TION_EX {..DWORD
4da0: 20 50 61 72 74 69 74 69 6f 6e 53 74 79 6c 65 3b PartitionStyle;
4db0: 0a 09 44 57 4f 52 44 20 50 61 72 74 69 74 69 6f ..DWORD Partitio
4dc0: 6e 43 6f 75 6e 74 3b 0a 09 75 6e 69 6f 6e 20 7b nCount;..union {
4dd0: 0a 09 09 44 52 49 56 45 5f 4c 41 59 4f 55 54 5f ...DRIVE_LAYOUT_
4de0: 49 4e 46 4f 52 4d 41 54 49 4f 4e 5f 4d 42 52 20 INFORMATION_MBR
4df0: 4d 62 72 3b 0a 09 09 44 52 49 56 45 5f 4c 41 59 Mbr;...DRIVE_LAY
4e00: 4f 55 54 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 5f OUT_INFORMATION_
4e10: 47 50 54 20 47 70 74 3b 0a 09 7d 0a 09 50 41 52 GPT Gpt;..}..PAR
4e20: 54 49 54 49 4f 4e 5f 49 4e 46 4f 52 4d 41 54 49 TITION_INFORMATI
4e30: 4f 4e 5f 45 58 20 5f 50 61 72 74 69 74 69 6f 6e ON_EX _Partition
4e40: 45 6e 74 72 79 3b 0a 0a 09 50 41 52 54 49 54 49 Entry;...PARTITI
4e50: 4f 4e 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 5f 45 ON_INFORMATION_E
4e60: 58 2a 20 50 61 72 74 69 74 69 6f 6e 45 6e 74 72 X* PartitionEntr
4e70: 79 28 29 20 7b 20 72 65 74 75 72 6e 20 26 5f 50 y() { return &_P
4e80: 61 72 74 69 74 69 6f 6e 45 6e 74 72 79 3b 20 7d artitionEntry; }
4e90: 0a 7d 0a 61 6c 69 61 73 20 44 52 49 56 45 5f 4c .}.alias DRIVE_L
4ea0: 41 59 4f 55 54 5f 49 4e 46 4f 52 4d 41 54 49 4f AYOUT_INFORMATIO
4eb0: 4e 5f 45 58 2a 20 50 44 52 49 56 45 5f 4c 41 59 N_EX* PDRIVE_LAY
4ec0: 4f 55 54 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 5f OUT_INFORMATION_
4ed0: 45 58 3b 0a 0a 73 74 72 75 63 74 20 4d 4f 56 45 EX;..struct MOVE
4ee0: 5f 46 49 4c 45 5f 44 41 54 41 20 7b 0a 09 48 41 _FILE_DATA {..HA
4ef0: 4e 44 4c 45 20 46 69 6c 65 48 61 6e 64 6c 65 3b NDLE FileHandle;
4f00: 0a 09 4c 41 52 47 45 5f 49 4e 54 45 47 45 52 20 ..LARGE_INTEGER
4f10: 53 74 61 72 74 69 6e 67 56 63 6e 3b 0a 09 4c 41 StartingVcn;..LA
4f20: 52 47 45 5f 49 4e 54 45 47 45 52 20 53 74 61 72 RGE_INTEGER Star
4f30: 74 69 6e 67 4c 63 6e 3b 0a 09 44 57 4f 52 44 20 tingLcn;..DWORD
4f40: 43 6c 75 73 74 65 72 43 6f 75 6e 74 3b 0a 7d 0a ClusterCount;.}.
4f50: 61 6c 69 61 73 20 4d 4f 56 45 5f 46 49 4c 45 5f alias MOVE_FILE_
4f60: 44 41 54 41 2a 20 50 4d 4f 56 45 5f 46 49 4c 45 DATA* PMOVE_FILE
4f70: 5f 44 41 54 41 3b 0a 0a 73 74 72 75 63 74 20 50 _DATA;..struct P
4f80: 45 52 46 5f 42 49 4e 20 7b 0a 09 44 57 4f 52 44 ERF_BIN {..DWORD
4f90: 20 20 20 20 20 4e 75 6d 62 65 72 4f 66 42 69 6e NumberOfBin
4fa0: 73 3b 0a 09 44 57 4f 52 44 20 20 20 20 20 54 79 s;..DWORD Ty
4fb0: 70 65 4f 66 42 69 6e 3b 0a 09 42 49 4e 5f 52 41 peOfBin;..BIN_RA
4fc0: 4e 47 45 20 5f 42 69 6e 73 52 61 6e 67 65 73 3b NGE _BinsRanges;
4fd0: 0a 0a 09 42 49 4e 5f 52 41 4e 47 45 2a 20 42 69 ...BIN_RANGE* Bi
4fe0: 6e 73 52 61 6e 67 65 73 28 29 20 7b 20 72 65 74 nsRanges() { ret
4ff0: 75 72 6e 20 26 5f 42 69 6e 73 52 61 6e 67 65 73 urn &_BinsRanges
5000: 3b 20 7d 0a 7d 0a 61 6c 69 61 73 20 50 45 52 46 ; }.}.alias PERF
5010: 5f 42 49 4e 2a 20 50 50 45 52 46 5f 42 49 4e 3b _BIN* PPERF_BIN;
5020: 0a 0a 73 74 72 75 63 74 20 50 52 45 56 45 4e 54 ..struct PREVENT
5030: 5f 4d 45 44 49 41 5f 52 45 4d 4f 56 41 4c 20 7b _MEDIA_REMOVAL {
5040: 0a 09 42 4f 4f 4c 45 41 4e 20 50 72 65 76 65 6e ..BOOLEAN Preven
5050: 74 4d 65 64 69 61 52 65 6d 6f 76 61 6c 3b 0a 7d tMediaRemoval;.}
5060: 0a 61 6c 69 61 73 20 50 52 45 56 45 4e 54 5f 4d .alias PREVENT_M
5070: 45 44 49 41 5f 52 45 4d 4f 56 41 4c 2a 20 50 50 EDIA_REMOVAL* PP
5080: 52 45 56 45 4e 54 5f 4d 45 44 49 41 5f 52 45 4d REVENT_MEDIA_REM
5090: 4f 56 41 4c 3b 0a 0a 73 74 72 75 63 74 20 52 45 OVAL;..struct RE
50a0: 54 52 49 45 56 41 4c 5f 50 4f 49 4e 54 45 52 53 TRIEVAL_POINTERS
50b0: 5f 42 55 46 46 45 52 20 7b 0a 09 44 57 4f 52 44 _BUFFER {..DWORD
50c0: 20 20 20 20 20 20 20 20 20 45 78 74 65 6e 74 43 ExtentC
50d0: 6f 75 6e 74 3b 0a 09 4c 41 52 47 45 5f 49 4e 54 ount;..LARGE_INT
50e0: 45 47 45 52 20 53 74 61 72 74 69 6e 67 56 63 6e EGER StartingVcn
50f0: 3b 0a 09 2f 2f 20 49 6e 20 4d 69 6e 47 57 2c 20 ;..// In MinGW,
5100: 74 68 69 73 20 69 73 20 64 65 63 6c 61 72 65 64 this is declared
5110: 20 61 73 20 73 74 72 75 63 74 20 7b 20 2e 2e 2e as struct { ...
5120: 20 7d 20 45 78 74 65 6e 74 73 5b 31 5d 3b 0a 09 } Extents[1];..
5130: 73 74 72 75 63 74 20 45 78 74 65 6e 74 20 7b 0a struct Extent {.
5140: 09 09 4c 41 52 47 45 5f 49 4e 54 45 47 45 52 20 ..LARGE_INTEGER
5150: 4e 65 78 74 56 63 6e 3b 0a 09 09 4c 41 52 47 45 NextVcn;...LARGE
5160: 5f 49 4e 54 45 47 45 52 20 4c 63 6e 3b 0a 09 7d _INTEGER Lcn;..}
5170: 0a 09 45 78 74 65 6e 74 20 5f 45 78 74 65 6e 74 ..Extent _Extent
5180: 73 3b 0a 0a 09 45 78 74 65 6e 74 2a 20 45 78 74 s;...Extent* Ext
5190: 65 6e 74 73 28 29 20 7b 20 72 65 74 75 72 6e 20 ents() { return
51a0: 26 5f 45 78 74 65 6e 74 73 3b 20 7d 0a 7d 0a 61 &_Extents; }.}.a
51b0: 6c 69 61 73 20 52 45 54 52 49 45 56 41 4c 5f 50 lias RETRIEVAL_P
51c0: 4f 49 4e 54 45 52 53 5f 42 55 46 46 45 52 2a 20 OINTERS_BUFFER*
51d0: 50 52 45 54 52 49 45 56 41 4c 5f 50 4f 49 4e 54 PRETRIEVAL_POINT
51e0: 45 52 53 5f 42 55 46 46 45 52 3b 0a 0a 73 74 72 ERS_BUFFER;..str
51f0: 75 63 74 20 52 45 41 53 53 49 47 4e 5f 42 4c 4f uct REASSIGN_BLO
5200: 43 4b 53 20 7b 0a 09 57 4f 52 44 20 20 52 65 73 CKS {..WORD Res
5210: 65 72 76 65 64 3b 0a 09 57 4f 52 44 20 20 43 6f erved;..WORD Co
5220: 75 6e 74 3b 0a 09 44 57 4f 52 44 20 5f 42 6c 6f unt;..DWORD _Blo
5230: 63 6b 4e 75 6d 62 65 72 3b 0a 0a 09 44 57 4f 52 ckNumber;...DWOR
5240: 44 2a 20 42 6c 6f 63 6b 4e 75 6d 62 65 72 28 29 D* BlockNumber()
5250: 20 7b 20 72 65 74 75 72 6e 20 26 5f 42 6c 6f 63 { return &_Bloc
5260: 6b 4e 75 6d 62 65 72 3b 20 7d 0a 7d 0a 61 6c 69 kNumber; }.}.ali
5270: 61 73 20 52 45 41 53 53 49 47 4e 5f 42 4c 4f 43 as REASSIGN_BLOC
5280: 4b 53 2a 20 50 52 45 41 53 53 49 47 4e 5f 42 4c KS* PREASSIGN_BL
5290: 4f 43 4b 53 3b 0a 0a 73 74 72 75 63 74 20 53 45 OCKS;..struct SE
52a0: 54 5f 50 41 52 54 49 54 49 4f 4e 5f 49 4e 46 4f T_PARTITION_INFO
52b0: 52 4d 41 54 49 4f 4e 20 7b 0a 09 42 59 54 45 20 RMATION {..BYTE
52c0: 50 61 72 74 69 74 69 6f 6e 54 79 70 65 3b 0a 7d PartitionType;.}
52d0: 0a 61 6c 69 61 73 20 53 45 54 5f 50 41 52 54 49 .alias SET_PARTI
52e0: 54 49 4f 4e 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e TION_INFORMATION
52f0: 2a 20 50 53 45 54 5f 50 41 52 54 49 54 49 4f 4e * PSET_PARTITION
5300: 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 3b 0a 0a 73 _INFORMATION;..s
5310: 74 72 75 63 74 20 53 54 41 52 54 49 4e 47 5f 4c truct STARTING_L
5320: 43 4e 5f 49 4e 50 55 54 5f 42 55 46 46 45 52 20 CN_INPUT_BUFFER
5330: 7b 0a 09 4c 41 52 47 45 5f 49 4e 54 45 47 45 52 {..LARGE_INTEGER
5340: 20 53 74 61 72 74 69 6e 67 4c 63 6e 3b 0a 7d 0a StartingLcn;.}.
5350: 61 6c 69 61 73 20 53 54 41 52 54 49 4e 47 5f 4c alias STARTING_L
5360: 43 4e 5f 49 4e 50 55 54 5f 42 55 46 46 45 52 2a CN_INPUT_BUFFER*
5370: 20 50 53 54 41 52 54 49 4e 47 5f 4c 43 4e 5f 49 PSTARTING_LCN_I
5380: 4e 50 55 54 5f 42 55 46 46 45 52 3b 0a 0a 73 74 NPUT_BUFFER;..st
5390: 72 75 63 74 20 53 54 41 52 54 49 4e 47 5f 56 43 ruct STARTING_VC
53a0: 4e 5f 49 4e 50 55 54 5f 42 55 46 46 45 52 20 7b N_INPUT_BUFFER {
53b0: 0a 09 4c 41 52 47 45 5f 49 4e 54 45 47 45 52 20 ..LARGE_INTEGER
53c0: 53 74 61 72 74 69 6e 67 56 63 6e 3b 0a 7d 0a 61 StartingVcn;.}.a
53d0: 6c 69 61 73 20 53 54 41 52 54 49 4e 47 5f 56 43 lias STARTING_VC
53e0: 4e 5f 49 4e 50 55 54 5f 42 55 46 46 45 52 2a 20 N_INPUT_BUFFER*
53f0: 50 53 54 41 52 54 49 4e 47 5f 56 43 4e 5f 49 4e PSTARTING_VCN_IN
5400: 50 55 54 5f 42 55 46 46 45 52 3b 0a 0a 73 74 72 PUT_BUFFER;..str
5410: 75 63 74 20 56 45 52 49 46 59 5f 49 4e 46 4f 52 uct VERIFY_INFOR
5420: 4d 41 54 49 4f 4e 20 7b 0a 09 4c 41 52 47 45 5f MATION {..LARGE_
5430: 49 4e 54 45 47 45 52 20 53 74 61 72 74 69 6e 67 INTEGER Starting
5440: 4f 66 66 73 65 74 3b 0a 09 44 57 4f 52 44 20 20 Offset;..DWORD
5450: 20 20 20 20 20 20 20 4c 65 6e 67 74 68 3b 0a 7d Length;.}
5460: 0a 61 6c 69 61 73 20 56 45 52 49 46 59 5f 49 4e .alias VERIFY_IN
5470: 46 4f 52 4d 41 54 49 4f 4e 2a 20 50 56 45 52 49 FORMATION* PVERI
5480: 46 59 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 3b 0a FY_INFORMATION;.
5490: 0a 73 74 72 75 63 74 20 56 4f 4c 55 4d 45 5f 42 .struct VOLUME_B
54a0: 49 54 4d 41 50 5f 42 55 46 46 45 52 20 7b 0a 09 ITMAP_BUFFER {..
54b0: 4c 41 52 47 45 5f 49 4e 54 45 47 45 52 20 53 74 LARGE_INTEGER St
54c0: 61 72 74 69 6e 67 4c 63 6e 3b 0a 09 4c 41 52 47 artingLcn;..LARG
54d0: 45 5f 49 4e 54 45 47 45 52 20 42 69 74 6d 61 70 E_INTEGER Bitmap
54e0: 53 69 7a 65 3b 0a 09 42 59 54 45 20 20 20 20 20 Size;..BYTE
54f0: 20 20 20 20 20 5f 42 75 66 66 65 72 3b 0a 0a 09 _Buffer;...
5500: 42 59 54 45 2a 20 42 75 66 66 65 72 28 29 20 7b BYTE* Buffer() {
5510: 20 72 65 74 75 72 6e 20 26 5f 42 75 66 66 65 72 return &_Buffer
5520: 3b 20 7d 0a 7d 0a 61 6c 69 61 73 20 56 4f 4c 55 ; }.}.alias VOLU
5530: 4d 45 5f 42 49 54 4d 41 50 5f 42 55 46 46 45 52 ME_BITMAP_BUFFER
5540: 2a 20 50 56 4f 4c 55 4d 45 5f 42 49 54 4d 41 50 * PVOLUME_BITMAP
5550: 5f 42 55 46 46 45 52 3b 0a 0a 73 74 72 75 63 74 _BUFFER;..struct
5560: 20 4e 54 46 53 5f 56 4f 4c 55 4d 45 5f 44 41 54 NTFS_VOLUME_DAT
5570: 41 5f 42 55 46 46 45 52 20 7b 0a 09 4c 41 52 47 A_BUFFER {..LARG
5580: 45 5f 49 4e 54 45 47 45 52 20 56 6f 6c 75 6d 65 E_INTEGER Volume
5590: 53 65 72 69 61 6c 4e 75 6d 62 65 72 3b 0a 09 4c SerialNumber;..L
55a0: 41 52 47 45 5f 49 4e 54 45 47 45 52 20 4e 75 6d ARGE_INTEGER Num
55b0: 62 65 72 53 65 63 74 6f 72 73 3b 0a 09 4c 41 52 berSectors;..LAR
55c0: 47 45 5f 49 4e 54 45 47 45 52 20 54 6f 74 61 6c GE_INTEGER Total
55d0: 43 6c 75 73 74 65 72 73 3b 0a 09 4c 41 52 47 45 Clusters;..LARGE
55e0: 5f 49 4e 54 45 47 45 52 20 46 72 65 65 43 6c 75 _INTEGER FreeClu
55f0: 73 74 65 72 73 3b 0a 09 4c 41 52 47 45 5f 49 4e sters;..LARGE_IN
5600: 54 45 47 45 52 20 54 6f 74 61 6c 52 65 73 65 72 TEGER TotalReser
5610: 76 65 64 3b 0a 09 44 57 4f 52 44 20 20 20 20 20 ved;..DWORD
5620: 20 20 20 20 42 79 74 65 73 50 65 72 53 65 63 74 BytesPerSect
5630: 6f 72 3b 0a 09 44 57 4f 52 44 20 20 20 20 20 20 or;..DWORD
5640: 20 20 20 42 79 74 65 73 50 65 72 43 6c 75 73 74 BytesPerClust
5650: 65 72 3b 0a 09 44 57 4f 52 44 20 20 20 20 20 20 er;..DWORD
5660: 20 20 20 42 79 74 65 73 50 65 72 46 69 6c 65 52 BytesPerFileR
5670: 65 63 6f 72 64 53 65 67 6d 65 6e 74 3b 0a 09 44 ecordSegment;..D
5680: 57 4f 52 44 20 20 20 20 20 20 20 20 20 43 6c 75 WORD Clu
5690: 73 74 65 72 73 50 65 72 46 69 6c 65 52 65 63 6f stersPerFileReco
56a0: 72 64 53 65 67 6d 65 6e 74 3b 0a 09 4c 41 52 47 rdSegment;..LARG
56b0: 45 5f 49 4e 54 45 47 45 52 20 4d 66 74 56 61 6c E_INTEGER MftVal
56c0: 69 64 44 61 74 61 4c 65 6e 67 74 68 3b 0a 09 4c idDataLength;..L
56d0: 41 52 47 45 5f 49 4e 54 45 47 45 52 20 4d 66 74 ARGE_INTEGER Mft
56e0: 53 74 61 72 74 4c 63 6e 3b 0a 09 4c 41 52 47 45 StartLcn;..LARGE
56f0: 5f 49 4e 54 45 47 45 52 20 4d 66 74 32 53 74 61 _INTEGER Mft2Sta
5700: 72 74 4c 63 6e 3b 0a 09 4c 41 52 47 45 5f 49 4e rtLcn;..LARGE_IN
5710: 54 45 47 45 52 20 4d 66 74 5a 6f 6e 65 53 74 61 TEGER MftZoneSta
5720: 72 74 3b 0a 09 4c 41 52 47 45 5f 49 4e 54 45 47 rt;..LARGE_INTEG
5730: 45 52 20 4d 66 74 5a 6f 6e 65 45 6e 64 3b 0a 7d ER MftZoneEnd;.}
5740: 0a 61 6c 69 61 73 20 4e 54 46 53 5f 56 4f 4c 55 .alias NTFS_VOLU
5750: 4d 45 5f 44 41 54 41 5f 42 55 46 46 45 52 2a 20 ME_DATA_BUFFER*
5760: 50 4e 54 46 53 5f 56 4f 4c 55 4d 45 5f 44 41 54 PNTFS_VOLUME_DAT
5770: 41 5f 42 55 46 46 45 52 3b 0a 0a 0a 62 6f 6f 6c A_BUFFER;...bool
5780: 20 49 73 52 65 63 6f 67 6e 69 7a 65 64 50 61 72 IsRecognizedPar
5790: 74 69 74 69 6f 6e 28 42 59 54 45 20 74 29 20 7b tition(BYTE t) {
57a0: 0a 09 72 65 74 75 72 6e 20 28 28 74 20 26 20 50 ..return ((t & P
57b0: 41 52 54 49 54 49 4f 4e 5f 4e 54 46 54 29 0a 09 ARTITION_NTFT)..
57c0: 20 20 26 26 20 28 28 74 20 26 20 7e 56 41 4c 49 && ((t & ~VALI
57d0: 44 5f 4e 54 46 54 29 20 3d 3d 20 50 41 52 54 49 D_NTFT) == PARTI
57e0: 54 49 4f 4e 5f 46 41 54 5f 31 32 0a 09 20 20 20 TION_FAT_12..
57f0: 20 7c 7c 20 28 74 20 26 20 7e 56 41 4c 49 44 5f || (t & ~VALID_
5800: 4e 54 46 54 29 20 3d 3d 20 50 41 52 54 49 54 49 NTFT) == PARTITI
5810: 4f 4e 5f 46 41 54 5f 31 36 0a 09 20 20 20 20 7c ON_FAT_16.. |
5820: 7c 20 28 74 20 26 20 7e 56 41 4c 49 44 5f 4e 54 | (t & ~VALID_NT
5830: 46 54 29 20 3d 3d 20 50 41 52 54 49 54 49 4f 4e FT) == PARTITION
5840: 5f 49 46 53 0a 09 20 20 20 20 7c 7c 20 28 74 20 _IFS.. || (t
5850: 26 20 7e 56 41 4c 49 44 5f 4e 54 46 54 29 20 3d & ~VALID_NTFT) =
5860: 3d 20 50 41 52 54 49 54 49 4f 4e 5f 48 55 47 45 = PARTITION_HUGE
5870: 0a 09 20 20 20 20 7c 7c 20 28 74 20 26 20 7e 56 .. || (t & ~V
5880: 41 4c 49 44 5f 4e 54 46 54 29 20 3d 3d 20 50 41 ALID_NTFT) == PA
5890: 52 54 49 54 49 4f 4e 5f 46 41 54 33 32 0a 09 20 RTITION_FAT32..
58a0: 20 20 20 7c 7c 20 28 74 20 26 20 7e 56 41 4c 49 || (t & ~VALI
58b0: 44 5f 4e 54 46 54 29 20 3d 3d 20 50 41 52 54 49 D_NTFT) == PARTI
58c0: 54 49 4f 4e 5f 46 41 54 33 32 5f 58 49 4e 54 31 TION_FAT32_XINT1
58d0: 33 0a 09 20 20 20 20 7c 7c 20 28 74 20 26 20 7e 3.. || (t & ~
58e0: 56 41 4c 49 44 5f 4e 54 46 54 29 20 3d 3d 20 50 VALID_NTFT) == P
58f0: 41 52 54 49 54 49 4f 4e 5f 58 49 4e 54 31 33 29 ARTITION_XINT13)
5900: 29 0a 09 20 20 7c 7c 20 28 74 20 26 20 7e 50 41 ).. || (t & ~PA
5910: 52 54 49 54 49 4f 4e 5f 4e 54 46 54 29 20 3d 3d RTITION_NTFT) ==
5920: 20 50 41 52 54 49 54 49 4f 4e 5f 46 41 54 5f 31 PARTITION_FAT_1
5930: 32 0a 09 20 20 7c 7c 20 28 74 20 26 20 7e 50 41 2.. || (t & ~PA
5940: 52 54 49 54 49 4f 4e 5f 4e 54 46 54 29 20 3d 3d RTITION_NTFT) ==
5950: 20 50 41 52 54 49 54 49 4f 4e 5f 46 41 54 5f 31 PARTITION_FAT_1
5960: 36 0a 09 20 20 7c 7c 20 28 74 20 26 20 7e 50 41 6.. || (t & ~PA
5970: 52 54 49 54 49 4f 4e 5f 4e 54 46 54 29 20 3d 3d RTITION_NTFT) ==
5980: 20 50 41 52 54 49 54 49 4f 4e 5f 49 46 53 0a 09 PARTITION_IFS..
5990: 20 20 7c 7c 20 28 74 20 26 20 7e 50 41 52 54 49 || (t & ~PARTI
59a0: 54 49 4f 4e 5f 4e 54 46 54 29 20 3d 3d 20 50 41 TION_NTFT) == PA
59b0: 52 54 49 54 49 4f 4e 5f 48 55 47 45 0a 09 20 20 RTITION_HUGE..
59c0: 7c 7c 20 28 74 20 26 20 7e 50 41 52 54 49 54 49 || (t & ~PARTITI
59d0: 4f 4e 5f 4e 54 46 54 29 20 3d 3d 20 50 41 52 54 ON_NTFT) == PART
59e0: 49 54 49 4f 4e 5f 46 41 54 33 32 0a 09 20 20 7c ITION_FAT32.. |
59f0: 7c 20 28 74 20 26 20 7e 50 41 52 54 49 54 49 4f | (t & ~PARTITIO
5a00: 4e 5f 4e 54 46 54 29 20 3d 3d 20 50 41 52 54 49 N_NTFT) == PARTI
5a10: 54 49 4f 4e 5f 46 41 54 33 32 5f 58 49 4e 54 31 TION_FAT32_XINT1
5a20: 33 0a 09 20 20 7c 7c 20 28 74 20 26 20 7e 50 41 3.. || (t & ~PA
5a30: 52 54 49 54 49 4f 4e 5f 4e 54 46 54 29 20 3d 3d RTITION_NTFT) ==
5a40: 20 50 41 52 54 49 54 49 4f 4e 5f 58 49 4e 54 31 PARTITION_XINT1
5a50: 33 3b 0a 7d 0a 0a 62 6f 6f 6c 20 49 73 43 6f 6e 3;.}..bool IsCon
5a60: 74 61 69 6e 65 72 50 61 72 74 69 74 69 6f 6e 28 tainerPartition(
5a70: 42 59 54 45 20 74 29 20 7b 0a 09 72 65 74 75 72 BYTE t) {..retur
5a80: 6e 20 28 28 74 20 26 20 50 41 52 54 49 54 49 4f n ((t & PARTITIO
5a90: 4e 5f 4e 54 46 54 29 0a 09 20 20 26 26 20 28 28 N_NTFT).. && ((
5aa0: 74 20 26 20 7e 56 41 4c 49 44 5f 4e 54 46 54 29 t & ~VALID_NTFT)
5ab0: 20 3d 3d 20 50 41 52 54 49 54 49 4f 4e 5f 45 58 == PARTITION_EX
5ac0: 54 45 4e 44 45 44 0a 09 20 20 20 20 7c 7c 20 28 TENDED.. || (
5ad0: 74 20 26 20 7e 56 41 4c 49 44 5f 4e 54 46 54 29 t & ~VALID_NTFT)
5ae0: 20 3d 3d 20 50 41 52 54 49 54 49 4f 4e 5f 58 49 == PARTITION_XI
5af0: 4e 54 31 33 5f 45 58 54 45 4e 44 45 44 29 29 0a NT13_EXTENDED)).
5b00: 09 20 20 7c 7c 20 28 74 20 26 20 7e 50 41 52 54 . || (t & ~PART
5b10: 49 54 49 4f 4e 5f 4e 54 46 54 29 20 3d 3d 20 50 ITION_NTFT) == P
5b20: 41 52 54 49 54 49 4f 4e 5f 45 58 54 45 4e 44 45 ARTITION_EXTENDE
5b30: 44 0a 09 20 20 7c 7c 20 28 74 20 26 20 7e 50 41 D.. || (t & ~PA
5b40: 52 54 49 54 49 4f 4e 5f 4e 54 46 54 29 20 3d 3d RTITION_NTFT) ==
5b50: 20 50 41 52 54 49 54 49 4f 4e 5f 58 49 4e 54 31 PARTITION_XINT1
5b60: 33 5f 45 58 54 45 4e 44 45 44 3b 0a 7d 0a 3_EXTENDED;.}.