Condividi tramite


!ioctldecode

L'estensione !ioctldecode visualizza il tipo di dispositivo, l'accesso obbligatorio, il codice della funzione e il tipo di trasferimento come specificato dal codice IOCTL specificato. Per altre informazioni sui codici di controllo IOCTL, vedere Definizione dei codici di controllo I/O.

!ioctldecode IoctlCode 

Parametri

IoctlCode

Specifica il codice IOCTL esadecimale. Il comando !irp visualizza il codice IOCTL nell'output.

DLL

Kdexts.dll

Informazioni aggiuntive

Per visualizzare informazioni sull'IOCTL, individuare prima un IRP di interesse. È possibile usare il comando !irpfind per individuare un irp di interesse.

Usare il comando !irp per visualizzare informazioni sull'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

Il terzo argomento visualizzato, in questo caso 0x220003, è il codice IOCTL. Usare il codice IOCTL per visualizzare informazioni sull'IOCTL, in questo caso 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

Se si specifica un codice IOCTL non disponibile, verrà visualizzato questo tipo di output.

0: kd> !ioctldecode 0x1280ce

Unknown IOCTL  : 0x1280ce 

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

Anche se l'IOCTL non è identificato, vengono visualizzate informazioni sui campi IOCTL.

Si noti che solo un subset di IOCTLs definiti pubblicamente può essere identificato dal comando !ioctldecode .

Per altre informazioni sui codici IOCTL, vedere Introduzione ai codici di controllo di I/O.

Per informazioni più generali sugli IRP e IOCTLs, vedere Internals di Windows di Mark E. Russinovich, David A. Solomon e Alex Ionovich.