標籤:microsoft battery board rom either poi link rtc not
IOCTL
在wdm.h中定義了一系統宏來解析/反解析IO控制碼:
//宏:用來產生IOCTL 和 FSCTL功能控制碼,功能代碼0-2047由微軟使用,2048-4095供使用者使用
#define CTL_CODE( DeviceType, Function, Method, Access ) (((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method))
//宏:提取裝置類型的宏
#define DEVICE_TYPE_FROM_CTL_CODE(ctrlCode) (((ULONG)(ctrlCode & 0xffff0000)) >> 16)
//宏:提取緩衝方法
#define METHOD_FROM_CTL_CODE(ctrlCode) ((ULONG)(ctrlCode & 3))
//宏:提取功能代碼
#define IoGetFunctionCodeFromCtlCode( ControlCode ) (( ControlCode >> 2) & 0x00000FFF )
裝置類型代碼:
1 // 2 // Define the various device type values. Note that values used by Microsoft 3 // Corporation are in the range 0-32767, and 32768-65535 are reserved for use 4 // by customers. 5 // 6 7 #define DEVICE_TYPE ULONG 8 9 #define FILE_DEVICE_BEEP 0x0000000110 #define FILE_DEVICE_CD_ROM 0x0000000211 #define FILE_DEVICE_CD_ROM_FILE_SYSTEM 0x0000000312 #define FILE_DEVICE_CONTROLLER 0x0000000413 #define FILE_DEVICE_DATALINK 0x0000000514 #define FILE_DEVICE_DFS 0x0000000615 #define FILE_DEVICE_DISK 0x0000000716 #define FILE_DEVICE_DISK_FILE_SYSTEM 0x0000000817 #define FILE_DEVICE_FILE_SYSTEM 0x0000000918 #define FILE_DEVICE_INPORT_PORT 0x0000000a19 #define FILE_DEVICE_KEYBOARD 0x0000000b20 #define FILE_DEVICE_MAILSLOT 0x0000000c21 #define FILE_DEVICE_MIDI_IN 0x0000000d22 #define FILE_DEVICE_MIDI_OUT 0x0000000e23 #define FILE_DEVICE_MOUSE 0x0000000f24 #define FILE_DEVICE_MULTI_UNC_PROVIDER 0x0000001025 #define FILE_DEVICE_NAMED_PIPE 0x0000001126 #define FILE_DEVICE_NETWORK 0x0000001227 #define FILE_DEVICE_NETWORK_BROWSER 0x0000001328 #define FILE_DEVICE_NETWORK_FILE_SYSTEM 0x0000001429 #define FILE_DEVICE_NULL 0x0000001530 #define FILE_DEVICE_PARALLEL_PORT 0x0000001631 #define FILE_DEVICE_PHYSICAL_NETCARD 0x0000001732 #define FILE_DEVICE_PRINTER 0x0000001833 #define FILE_DEVICE_SCANNER 0x0000001934 #define FILE_DEVICE_SERIAL_MOUSE_PORT 0x0000001a35 #define FILE_DEVICE_SERIAL_PORT 0x0000001b36 #define FILE_DEVICE_SCREEN 0x0000001c37 #define FILE_DEVICE_SOUND 0x0000001d38 #define FILE_DEVICE_STREAMS 0x0000001e39 #define FILE_DEVICE_TAPE 0x0000001f40 #define FILE_DEVICE_TAPE_FILE_SYSTEM 0x0000002041 #define FILE_DEVICE_TRANSPORT 0x0000002142 #define FILE_DEVICE_UNKNOWN 0x0000002243 #define FILE_DEVICE_VIDEO 0x0000002344 #define FILE_DEVICE_VIRTUAL_DISK 0x0000002445 #define FILE_DEVICE_WAVE_IN 0x0000002546 #define FILE_DEVICE_WAVE_OUT 0x0000002647 #define FILE_DEVICE_8042_PORT 0x0000002748 #define FILE_DEVICE_NETWORK_REDIRECTOR 0x0000002849 #define FILE_DEVICE_BATTERY 0x0000002950 #define FILE_DEVICE_BUS_EXTENDER 0x0000002a51 #define FILE_DEVICE_MODEM 0x0000002b52 #define FILE_DEVICE_VDM 0x0000002c53 #define FILE_DEVICE_MASS_STORAGE 0x0000002d54 #define FILE_DEVICE_SMB 0x0000002e55 #define FILE_DEVICE_KS 0x0000002f56 #define FILE_DEVICE_CHANGER 0x0000003057 #define FILE_DEVICE_SMARTCARD 0x0000003158 #define FILE_DEVICE_ACPI 0x0000003259 #define FILE_DEVICE_DVD 0x0000003360 #define FILE_DEVICE_FULLSCREEN_VIDEO 0x0000003461 #define FILE_DEVICE_DFS_FILE_SYSTEM 0x0000003562 #define FILE_DEVICE_DFS_VOLUME 0x0000003663 #define FILE_DEVICE_SERENUM 0x0000003764 #define FILE_DEVICE_TERMSRV 0x0000003865 #define FILE_DEVICE_KSEC 0x0000003966 #define FILE_DEVICE_FIPS 0x0000003A67 #define FILE_DEVICE_INFINIBAND 0x0000003B68 #define FILE_DEVICE_VMBUS 0x0000003E69 #define FILE_DEVICE_CRYPT_PROVIDER 0x0000003F70 #define FILE_DEVICE_WPD 0x0000004071 #define FILE_DEVICE_BLUETOOTH 0x0000004172 #define FILE_DEVICE_MT_COMPOSITE 0x0000004273 #define FILE_DEVICE_MT_TRANSPORT 0x0000004374 #define FILE_DEVICE_BIOMETRIC 0x0000004475 #define FILE_DEVICE_PMI 0x0000004576 #define FILE_DEVICE_EHSTOR 0x0000004677 #define FILE_DEVICE_DEVAPI 0x0000004778 #define FILE_DEVICE_GPIO 0x0000004879 #define FILE_DEVICE_USBEX 0x0000004980 #define FILE_DEVICE_CONSOLE 0x0000005081 #define FILE_DEVICE_NFP 0x0000005182 #define FILE_DEVICE_SYSENV 0x0000005283 #define FILE_DEVICE_VIRTUAL_BLOCK 0x0000005384 #define FILE_DEVICE_POINT_OF_SERVICE 0x0000005485 #define FILE_DEVICE_STORAGE_REPLICATION 0x0000005586 #define FILE_DEVICE_TRUST_ENV 0x0000005687 #define FILE_DEVICE_UCM 0x0000005788 #define FILE_DEVICE_UCMTCPCI 0x0000005889 #define FILE_DEVICE_PERSISTENT_MEMORY 0x0000005990 #define FILE_DEVICE_NVDIMM 0x0000005a91 #define FILE_DEVICE_HOLOGRAPHIC 0x0000005b92 #define FILE_DEVICE_SDFXHCI 0x0000005c
裝置類型代碼
緩衝方法:
1 // 定義I/O和FS控制如何傳遞緩衝的方法代碼2 3 #define METHOD_BUFFERED 04 #define METHOD_IN_DIRECT 15 #define METHOD_OUT_DIRECT 26 #define METHOD_NEITHER 3
緩衝方法
IOCTL(CTL_CODE)