📄 winioctl.h
字号:
#ifndef _WINIOCTL_H#define _WINIOCTL_H#if __GNUC__ >=3#pragma GCC system_header#endif#ifdef __cplusplusextern "C" {#endif#define HIST_NO_OF_BUCKETS 24#define HISTOGRAM_BUCKET_SIZE sizeof(HISTOGRAM_BUCKET)#define DISK_HISTOGRAM_SIZE sizeof(DISK_HISTOGRAM)#define CTL_CODE(t,f,m,a) (((t)<<16)|((a)<<14)|((f)<<2)|(m))#define DEVICE_TYPE_FROM_CTL_CODE(c) (((DWORD)((c)&0xffff0000))>>16)#define IOCTL_STORAGE_BASE FILE_DEVICE_MASS_STORAGE#define IOCTL_STORAGE_CHECK_VERIFY CTL_CODE(IOCTL_STORAGE_BASE, 0x0200, METHOD_BUFFERED, FILE_READ_ACCESS)#define IOCTL_STORAGE_CHECK_VERIFY2 CTL_CODE(IOCTL_STORAGE_BASE, 0x0200, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_STORAGE_MEDIA_REMOVAL CTL_CODE(IOCTL_STORAGE_BASE, 0x0201, METHOD_BUFFERED, FILE_READ_ACCESS)#define IOCTL_STORAGE_EJECT_MEDIA CTL_CODE(IOCTL_STORAGE_BASE, 0x0202, METHOD_BUFFERED, FILE_READ_ACCESS)#define IOCTL_STORAGE_LOAD_MEDIA CTL_CODE(IOCTL_STORAGE_BASE, 0x0203, METHOD_BUFFERED, FILE_READ_ACCESS)#define IOCTL_STORAGE_LOAD_MEDIA2 CTL_CODE(IOCTL_STORAGE_BASE, 0x0203, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_STORAGE_RESERVE CTL_CODE(IOCTL_STORAGE_BASE, 0x0204, METHOD_BUFFERED, FILE_READ_ACCESS)#define IOCTL_STORAGE_RELEASE CTL_CODE(IOCTL_STORAGE_BASE, 0x0205, METHOD_BUFFERED, FILE_READ_ACCESS)#define IOCTL_STORAGE_FIND_NEW_DEVICES CTL_CODE(IOCTL_STORAGE_BASE, 0x0206, METHOD_BUFFERED, FILE_READ_ACCESS)#define IOCTL_STORAGE_EJECTION_CONTROL CTL_CODE(IOCTL_STORAGE_BASE, 0x0250, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_STORAGE_MCN_CONTROL CTL_CODE(IOCTL_STORAGE_BASE, 0x0251, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_STORAGE_GET_MEDIA_TYPES CTL_CODE(IOCTL_STORAGE_BASE, 0x0300, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_STORAGE_GET_MEDIA_TYPES_EX CTL_CODE(IOCTL_STORAGE_BASE, 0x0301, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_STORAGE_RESET_BUS CTL_CODE(IOCTL_STORAGE_BASE, 0x0400, METHOD_BUFFERED, FILE_READ_ACCESS)#define IOCTL_STORAGE_RESET_DEVICE CTL_CODE(IOCTL_STORAGE_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS)#define IOCTL_STORAGE_GET_DEVICE_NUMBER CTL_CODE(IOCTL_STORAGE_BASE, 0x0420, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_STORAGE_PREDICT_FAILURE CTL_CODE(IOCTL_STORAGE_BASE, 0x0440, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_DISK_BASE FILE_DEVICE_DISK#define IOCTL_DISK_GET_DRIVE_GEOMETRY CTL_CODE(IOCTL_DISK_BASE,0,METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_DISK_GET_PARTITION_INFO CTL_CODE(IOCTL_DISK_BASE,1,METHOD_BUFFERED,FILE_READ_ACCESS)#define IOCTL_DISK_SET_PARTITION_INFO CTL_CODE(IOCTL_DISK_BASE,2,METHOD_BUFFERED,FILE_READ_ACCESS|FILE_WRITE_ACCESS)#define IOCTL_DISK_GET_DRIVE_LAYOUT CTL_CODE(IOCTL_DISK_BASE,3,METHOD_BUFFERED,FILE_READ_ACCESS)#define IOCTL_DISK_SET_DRIVE_LAYOUT CTL_CODE(IOCTL_DISK_BASE,4,METHOD_BUFFERED,FILE_READ_ACCESS|FILE_WRITE_ACCESS)#define IOCTL_DISK_VERIFY CTL_CODE(IOCTL_DISK_BASE,5,METHOD_BUFFERED,FILE_ANY_ACCESS)#define IOCTL_DISK_FORMAT_TRACKS CTL_CODE(IOCTL_DISK_BASE,6,METHOD_BUFFERED,FILE_READ_ACCESS|FILE_WRITE_ACCESS)#define IOCTL_DISK_REASSIGN_BLOCKS CTL_CODE(IOCTL_DISK_BASE,7,METHOD_BUFFERED,FILE_READ_ACCESS|FILE_WRITE_ACCESS)#define IOCTL_DISK_PERFORMANCE CTL_CODE(IOCTL_DISK_BASE,8,METHOD_BUFFERED,FILE_ANY_ACCESS)#define IOCTL_DISK_IS_WRITABLE CTL_CODE(IOCTL_DISK_BASE,9,METHOD_BUFFERED,FILE_ANY_ACCESS)#define IOCTL_DISK_LOGGING CTL_CODE(IOCTL_DISK_BASE,10,METHOD_BUFFERED,FILE_ANY_ACCESS)#define IOCTL_DISK_FORMAT_TRACKS_EX CTL_CODE(IOCTL_DISK_BASE,11,METHOD_BUFFERED,FILE_READ_ACCESS|FILE_WRITE_ACCESS)#define IOCTL_DISK_HISTOGRAM_STRUCTURE CTL_CODE(IOCTL_DISK_BASE,12,METHOD_BUFFERED,FILE_ANY_ACCESS)#define IOCTL_DISK_HISTOGRAM_DATA CTL_CODE(IOCTL_DISK_BASE,13,METHOD_BUFFERED,FILE_ANY_ACCESS)#define IOCTL_DISK_HISTOGRAM_RESET CTL_CODE(IOCTL_DISK_BASE,14,METHOD_BUFFERED,FILE_ANY_ACCESS)#define IOCTL_DISK_REQUEST_STRUCTURE CTL_CODE(IOCTL_DISK_BASE,15,METHOD_BUFFERED,FILE_ANY_ACCESS)#define IOCTL_DISK_REQUEST_DATA CTL_CODE(IOCTL_DISK_BASE,16,METHOD_BUFFERED,FILE_ANY_ACCESS)#define IOCTL_DISK_GET_PARTITION_INFO_EX CTL_CODE(IOCTL_DISK_BASE,0x12,METHOD_BUFFERED,FILE_ANY_ACCESS)#define IOCTL_DISK_SET_PARTITION_INFO_EX CTL_CODE(IOCTL_DISK_BASE,0x13,METHOD_BUFFERED,FILE_READ_ACCESS | FILE_WRITE_ACCESS)#define IOCTL_DISK_GET_DRIVE_LAYOUT_EX CTL_CODE(IOCTL_DISK_BASE,0x14,METHOD_BUFFERED,FILE_ANY_ACCESS)#define IOCTL_DISK_SET_DRIVE_LAYOUT_EX CTL_CODE(IOCTL_DISK_BASE,0x15,METHOD_BUFFERED,FILE_READ_ACCESS | FILE_WRITE_ACCESS)#define IOCTL_DISK_CREATE_DISK CTL_CODE(IOCTL_DISK_BASE,0x16,METHOD_BUFFERED,FILE_READ_ACCESS | FILE_WRITE_ACCESS)#define IOCTL_DISK_GET_LENGTH_INFO CTL_CODE(IOCTL_DISK_BASE,0x17,METHOD_BUFFERED,FILE_READ_ACCESS)#define IOCTL_DISK_PERFORMANCE_OFF CTL_CODE(IOCTL_DISK_BASE,0x18,METHOD_BUFFERED,FILE_ANY_ACCESS)#define IOCTL_DISK_GET_DRIVE_GEOMETRY_EX CTL_CODE(IOCTL_DISK_BASE,0x28,METHOD_BUFFERED,FILE_ANY_ACCESS)#define IOCTL_DISK_GROW_PARTITION CTL_CODE(IOCTL_DISK_BASE,0x34,METHOD_BUFFERED,FILE_READ_ACCESS | FILE_WRITE_ACCESS)#define IOCTL_DISK_GET_CACHE_INFORMATION CTL_CODE(IOCTL_DISK_BASE,0x35,METHOD_BUFFERED,FILE_READ_ACCESS)#define IOCTL_DISK_SET_CACHE_INFORMATION CTL_CODE(IOCTL_DISK_BASE,0x36,METHOD_BUFFERED,FILE_READ_ACCESS | FILE_WRITE_ACCESS)#define IOCTL_DISK_DELETE_DRIVE_LAYOUT CTL_CODE(IOCTL_DISK_BASE,0x40,METHOD_BUFFERED,FILE_READ_ACCESS | FILE_WRITE_ACCESS)#define IOCTL_DISK_UPDATE_PROPERTIES CTL_CODE(IOCTL_DISK_BASE,0x50,METHOD_BUFFERED,FILE_ANY_ACCESS)#define IOCTL_DISK_CHECK_VERIFY CTL_CODE(IOCTL_DISK_BASE,0x200,METHOD_BUFFERED,FILE_READ_ACCESS)#define IOCTL_DISK_MEDIA_REMOVAL CTL_CODE(IOCTL_DISK_BASE,0x201,METHOD_BUFFERED,FILE_READ_ACCESS)#define IOCTL_DISK_EJECT_MEDIA CTL_CODE(IOCTL_DISK_BASE,0x202,METHOD_BUFFERED,FILE_READ_ACCESS)#define IOCTL_DISK_LOAD_MEDIA CTL_CODE(IOCTL_DISK_BASE,0x203,METHOD_BUFFERED,FILE_READ_ACCESS)#define IOCTL_DISK_RESERVE CTL_CODE(IOCTL_DISK_BASE,0x204,METHOD_BUFFERED,FILE_READ_ACCESS)#define IOCTL_DISK_RELEASE CTL_CODE(IOCTL_DISK_BASE,0x205,METHOD_BUFFERED,FILE_READ_ACCESS)#define IOCTL_DISK_FIND_NEW_DEVICES CTL_CODE(IOCTL_DISK_BASE,0x206,METHOD_BUFFERED,FILE_READ_ACCESS)#define IOCTL_DISK_REMOVE_DEVICE CTL_CODE(IOCTL_DISK_BASE,0x207,METHOD_BUFFERED,FILE_READ_ACCESS)#define IOCTL_DISK_GET_MEDIA_TYPES CTL_CODE(IOCTL_DISK_BASE,0x300,METHOD_BUFFERED,FILE_ANY_ACCESS)#define IOCTL_DISK_UPDATE_DRIVE_SIZE CTL_CODE(IOCTL_DISK_BASE, 0x0032, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)#define IOCTL_SERIAL_LSRMST_INSERT CTL_CODE(FILE_DEVICE_SERIAL_PORT,31,METHOD_BUFFERED,FILE_ANY_ACCESS)/* Also in ddk/ntddvol.h */#define IOCTL_VOLUME_BASE ((ULONG) 'V')#define IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS \ CTL_CODE(IOCTL_VOLUME_BASE, 0, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_VOLUME_IS_CLUSTERED \ CTL_CODE(IOCTL_VOLUME_BASE, 12, METHOD_BUFFERED, FILE_ANY_ACCESS)#define FSCTL_LOCK_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM,6,METHOD_BUFFERED,FILE_ANY_ACCESS)#define FSCTL_UNLOCK_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM,7,METHOD_BUFFERED,FILE_ANY_ACCESS)#define FSCTL_DISMOUNT_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM,8,METHOD_BUFFERED,FILE_ANY_ACCESS)#define FSCTL_MOUNT_DBLS_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM,13,METHOD_BUFFERED,FILE_ANY_ACCESS)#define FSCTL_GET_COMPRESSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM,15,METHOD_BUFFERED,FILE_ANY_ACCESS)#define FSCTL_SET_COMPRESSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM,16,METHOD_BUFFERED,FILE_READ_DATA|FILE_WRITE_DATA)#define FSCTL_READ_COMPRESSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM,17,METHOD_NEITHER,FILE_READ_DATA)#define FSCTL_WRITE_COMPRESSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM,18,METHOD_NEITHER,FILE_WRITE_DATA)#define FSCTL_GET_NTFS_VOLUME_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM,25,METHOD_BUFFERED,FILE_ANY_ACCESS)#define FSCTL_GET_VOLUME_BITMAP CTL_CODE(FILE_DEVICE_FILE_SYSTEM,27,METHOD_NEITHER,FILE_ANY_ACCESS)#define FSCTL_GET_RETRIEVAL_POINTERS CTL_CODE(FILE_DEVICE_FILE_SYSTEM,28,METHOD_NEITHER,FILE_ANY_ACCESS)#define FSCTL_MOVE_FILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM,29,METHOD_BUFFERED,FILE_ANY_ACCESS)#define FSCTL_GET_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 42, METHOD_BUFFERED, FILE_ANY_ACCESS)#define FSCTL_SET_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 41, METHOD_BUFFERED, FILE_ANY_ACCESS)#define FSCTL_DELETE_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 43, METHOD_BUFFERED, FILE_ANY_ACCESS)#define FSCTL_SET_SPARSE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 49, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)#define DEVICE_TYPE DWORD#define FILE_DEVICE_BEEP 1#define FILE_DEVICE_CD_ROM 2#define FILE_DEVICE_CD_ROM_FILE_SYSTEM 3#define FILE_DEVICE_CONTROLLER 4#define FILE_DEVICE_DATALINK 5#define FILE_DEVICE_DFS 6#define FILE_DEVICE_DISK 7#define FILE_DEVICE_DISK_FILE_SYSTEM 8#define FILE_DEVICE_FILE_SYSTEM 9#define FILE_DEVICE_INPORT_PORT 10#define FILE_DEVICE_KEYBOARD 11#define FILE_DEVICE_MAILSLOT 12#define FILE_DEVICE_MIDI_IN 13#define FILE_DEVICE_MIDI_OUT 14#define FILE_DEVICE_MOUSE 15#define FILE_DEVICE_MULTI_UNC_PROVIDER 16#define FILE_DEVICE_NAMED_PIPE 17#define FILE_DEVICE_NETWORK 18#define FILE_DEVICE_NETWORK_BROWSER 19#define FILE_DEVICE_NETWORK_FILE_SYSTEM 20#define FILE_DEVICE_NULL 21#define FILE_DEVICE_PARALLEL_PORT 22#define FILE_DEVICE_PHYSICAL_NETCARD 23#define FILE_DEVICE_PRINTER 24#define FILE_DEVICE_SCANNER 25#define FILE_DEVICE_SERIAL_MOUSE_PORT 26#define FILE_DEVICE_SERIAL_PORT 27#define FILE_DEVICE_SCREEN 28#define FILE_DEVICE_SOUND 29#define FILE_DEVICE_STREAMS 30#define FILE_DEVICE_TAPE 31#define FILE_DEVICE_TAPE_FILE_SYSTEM 32#define FILE_DEVICE_TRANSPORT 33#define FILE_DEVICE_UNKNOWN 34#define FILE_DEVICE_VIDEO 35#define FILE_DEVICE_VIRTUAL_DISK 36#define FILE_DEVICE_WAVE_IN 37#define FILE_DEVICE_WAVE_OUT 38#define FILE_DEVICE_8042_PORT 39#define FILE_DEVICE_NETWORK_REDIRECTOR 40#define FILE_DEVICE_BATTERY 41#define FILE_DEVICE_BUS_EXTENDER 42#define FILE_DEVICE_MODEM 43#define FILE_DEVICE_VDM 44#define FILE_DEVICE_MASS_STORAGE 45#define FILE_DEVICE_SMB 46#define FILE_DEVICE_KS 47#define FILE_DEVICE_CHANGER 48#define FILE_DEVICE_SMARTCARD 49#define FILE_DEVICE_ACPI 50#define FILE_DEVICE_DVD 51#define FILE_DEVICE_FULLSCREEN_VIDEO 52#define FILE_DEVICE_DFS_FILE_SYSTEM 53#define FILE_DEVICE_DFS_VOLUME 54#define FILE_DEVICE_SERENUM 55#define FILE_DEVICE_TERMSRV 56#define FILE_DEVICE_KSEC 57#define PARTITION_ENTRY_UNUSED 0#define PARTITION_FAT_12 1#define PARTITION_XENIX_1 2#define PARTITION_XENIX_2 3#define PARTITION_FAT_16 4#define PARTITION_EXTENDED 5#define PARTITION_HUGE 6#define PARTITION_IFS 7#define PARTITION_FAT32 0x0B#define PARTITION_FAT32_XINT13 0x0C#define PARTITION_XINT13 0x0E#define PARTITION_XINT13_EXTENDED 0x0F#define PARTITION_PREP 0x41#define PARTITION_LDM 0x42#define PARTITION_UNIX 0x63#define PARTITION_NTFT 128#define VALID_NTFT 0xC0#define METHOD_BUFFERED 0#define METHOD_IN_DIRECT 1#define METHOD_OUT_DIRECT 2#define METHOD_NEITHER 3#define SERIAL_LSRMST_ESCAPE 0#define SERIAL_LSRMST_LSR_DATA 1#define SERIAL_LSRMST_LSR_NODATA 2#define SERIAL_LSRMST_MST 3/* Also in ddk/winddk.h */#define FILE_ANY_ACCESS 0x00000000#define FILE_SPECIAL_ACCESS FILE_ANY_ACCESS#define FILE_READ_ACCESS 0x00000001#define FILE_WRITE_ACCESS 0x00000002#define DISK_LOGGING_START 0#define DISK_LOGGING_STOP 1#define DISK_LOGGING_DUMP 2#define DISK_BINNING 3typedef WORD BAD_TRACK_NUMBER,*PBAD_TRACK_NUMBER;typedef enum _BIN_TYPES {RequestSize,RequestLocation} BIN_TYPES;typedef struct _BIN_RANGE { LARGE_INTEGER StartValue; LARGE_INTEGER Length;} BIN_RANGE,*PBIN_RANGE;typedef struct _BIN_COUNT { BIN_RANGE BinRange; DWORD BinCount;} BIN_COUNT,*PBIN_COUNT;typedef struct _BIN_RESULTS { DWORD NumberOfBins; BIN_COUNT BinCounts[1];} BIN_RESULTS,*PBIN_RESULTS;typedef enum _PARTITION_STYLE { PARTITION_STYLE_MBR, PARTITION_STYLE_GPT, PARTITION_STYLE_RAW} PARTITION_STYLE;typedef struct { GUID DiskId; DWORD MaxPartitionCount;} CREATE_DISK_GPT,*PCREATE_DISK_GPT;typedef struct { DWORD Signature;} CREATE_DISK_MBR,*PCREATE_DISK_MBR;typedef struct { PARTITION_STYLE PartitionStyle; _ANONYMOUS_UNION union { CREATE_DISK_MBR Mbr; CREATE_DISK_GPT Gpt; };} CREATE_DISK,*PCREATE_DISK;typedef enum { EqualPriority, KeepPrefetchedData, KeepReadData} DISK_CACHE_RETENTION_PRIORITY;typedef struct _DISK_CACHE_INFORMATION { BOOLEAN ParametersSavable; BOOLEAN ReadCacheEnabled; BOOLEAN WriteCacheEnabled; DISK_CACHE_RETENTION_PRIORITY ReadRetentionPriority; DISK_CACHE_RETENTION_PRIORITY WriteRetentionPriority; WORD DisablePrefetchTransferLength; BOOLEAN PrefetchScalar; _ANONYMOUS_UNION union { struct { WORD Minimum; WORD Maximum; WORD MaximumBlocks; } ScalarPrefetch; struct { WORD Minimum; WORD Maximum; } BlockPrefetch; };} DISK_CACHE_INFORMATION,*PDISK_CACHE_INFORMATION;typedef enum _DETECTION_TYPE { DetectNone, DetectInt13, DetectExInt13} DETECTION_TYPE;typedef struct _DISK_INT13_INFO { WORD DriveSelect; DWORD MaxCylinders; WORD SectorsPerTrack; WORD MaxHeads; WORD NumberDrives;} DISK_INT13_INFO,*PDISK_INT13_INFO;typedef struct _DISK_EX_INT13_INFO { WORD ExBufferSize; WORD ExFlags; DWORD ExCylinders; DWORD ExHeads; DWORD ExSectorsPerTrack; DWORD64 ExSectorsPerDrive; WORD ExSectorSize; WORD ExReserved;} DISK_EX_INT13_INFO,*PDISK_EX_INT13_INFO;typedef struct _DISK_DETECTION_INFO { DWORD SizeOfDetectInfo; DETECTION_TYPE DetectionType; _ANONYMOUS_UNION union { _ANONYMOUS_STRUCT struct { DISK_INT13_INFO Int13;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -