!ioctldecode

!ioctldecode 扩展显示给定 IOCTL 代码指定的设备类型所需访问权限函数代码传输类型。 有关 IOCTL 控制代码的详细信息,请参阅 定义 I/O 控制代码

!ioctldecode IoctlCode 

参数

IoctlCode

指定十六进制 IOCTL 代码。 !irp 命令在其输出中显示 IOCTL 代码。

DLL

Kdexts.dll

其他信息

若要查看有关 IOCTL 的信息,首先需要找到相关的 IRP。 可以使用 !irpfind 命令查找相关的 IRP。

使用 !irp 命令显示有关 IRP 的信息。

0: kd> !irp ffffd581a6c6cd30
Irp is active with 6 stacks 6 is current (= 0xffffd581a6c6cf68)
No Mdl: No System Buffer: Thread 00000000:  Irp stack trace.  
     cmd  flg cl Device   File     Completion-Context
[N/A(0), N/A(0)]
            0  0 00000000 00000000 00000000-00000000    

                                                Args: 00000000 00000000 00000000 00000000
[N/A(0), N/A(0)]
            0  0 00000000 00000000 00000000-00000000    

                                                Args: 00000000 00000000 00000000 00000000
[N/A(0), N/A(0)]
            0  0 00000000 00000000 00000000-00000000    

                                                Args: 00000000 00000000 00000000 00000000
[N/A(0), N/A(0)]
            0  0 00000000 00000000 00000000-00000000    

                                                Args: 00000000 00000000 00000000 00000000
[N/A(0), N/A(0)]
            0  0 00000000 00000000 00000000-00000000    

                                                Args: 00000000 00000000 00000000 00000000
>[IRP_MJ_INTERNAL_DEVICE_CONTROL(f), N/A(0)]
            0 e1 ffffd581a5fbd050 00000000 fffff806d2412cf0-ffffd581a5cce050 Success Error Cancel pending
                       \Driver\usbehci        (IopUnloadSafeCompletion)
                                                Args: ffffd581a6c61a50 00000000 0x220003 00000000

显示的第三个参数是 IOCTL 代码,本例中为 0x220003。 使用 IOCTL 代码显示有关 IOCTL 的信息,本例中为 IOCTL_INTERNAL_USB_SUBMIT_URB

0: kd> !ioctldecode 0x220003

IOCTL_INTERNAL_USB_SUBMIT_URB

Device Type    : 0x22 (FILE_DEVICE_WINLOAD) (FILE_DEVICE_USER_MODE_BUS) (FILE_DEVICE_USB) (FILE_DEVICE_UNKNOWN)
Method         : 0x3 METHOD_NEITHER 
Access         : FILE_ANY_ACCESS
Function       : 0x0

如果提供的 IOCTL 代码不可用,将看到这种类型的输出。

0: kd> !ioctldecode 0x1280ce

Unknown IOCTL  : 0x1280ce 

Device Type    : 0x12 (FILE_DEVICE_NETWORK)
Method         : 0x2 METHOD_OUT_DIRECT 
Access         : FILE_WRITE_ACCESS 
Function       : 0x33

虽然未标识 IOCTL,但将显示有关 IOCTL 字段的信息。

请注意,只有一部分公开定义的 IOCTL 才能由 !ioctldecode 命令标识。

有关 IOCTL 的详细信息,请参阅 I/O 控制代码简介

有关 IRP 和 IOCTL 的更多一般信息,请参阅 Mark E. Russinovich、David A. Solomon 和 Alex Ionescu 编写的 Windows 内部资料