Hex Artifact Content

Not logged in

Artifact 21d3d57439478e49b67c0b7350bbeff2da11f21e:


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