Freigeben über


!ioctldecode

Die Erweiterung !ioctldecode zeigt den Gerätetyp, den erforderlichen Zugriff, den Funktionscode und die Übertragungsart an, wie sie durch den angegebenen IOCTL-Code spezifiziert sind. Weitere Informationen zu IOCTL-Steuercodes finden Sie unter Defining I/O Control Codes.

!ioctldecode IoctlCode 

Parameter

IoctlCode

Gibt den hexadezimalen IOCTL-Code an. Der Befehl !irp zeigt in seiner Ausgabe den IOCTL-Code an.

DLL

Kdexts.dll

Zusätzliche Informationen

Um Informationen über die IOCTL zu erhalten, müssen wir zunächst einen IRP von Interesse ausfindig machen. Sie können den Befehl !irpfind verwenden, um einen irp von Interesse zu finden.

Verwenden Sie den Befehl !irp, um Informationen über den irp anzuzeigen.

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

Das dritte angezeigte Argument, in diesem Fall 0x220003, ist der IOCTL-Code. Verwenden Sie den IOCTL-Code, um Informationen über die IOCTL anzuzeigen, in diesem Fall 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

Wenn Sie einen IOCTL-Code angeben, der nicht verfügbar ist, erhalten Sie diese Art von Ausgabe.

0: kd> !ioctldecode 0x1280ce

Unknown IOCTL  : 0x1280ce 

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

Obwohl die IOCTL nicht identifiziert wird, werden Informationen über die IOCTL-Felder angezeigt.

Beachten Sie, dass nur eine Teilmenge der öffentlich definierten IOCTLs durch den Befehl !ioctldecode identifiziert werden kann.

Weitere Informationen über IOCTLs finden Sie unter Introduction to I/O Control Codes.

Weitere allgemeine Informationen über IRPs und IOCTLs finden Sie in Windows Internals von Mark E. Russinovich, David A. Solomon und Alex Ionescu.