IOCTL(CTL_CODE)

來源:互聯網
上載者:User

標籤: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)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.