Share via


!ioctldecode

La extensión !ioctldecode muestra el Tipo de dispositivo, el Acceso requerido, el Código de función y el Tipo de transferencia especificados por el código IOCTL determinado. Para obtener más información sobre los códigos de control IOCTL, consulte Definición de los códigos de control de E/S.

!ioctldecode IoctlCode 

Parámetros

IoctlCode

Especifica el código hexadecimal IOCTL. El comando !irp muestra el código IOCTL en su salida.

Archivo DLL

Kdexts.dll

Información adicional

Para ver la información sobre el IOCTL, primero localizamos un IRP de interés. Puede utilizar el comando !irpfind para localizar un irp de interés.

Utilice el comando !irp para mostrar información sobre el 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

El tercer argumento mostrado, en este caso 0x220003, es el código IOCTL. Utilice el código IOCTL para mostrar información sobre elIOCTL, en este 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

Si proporciona un código IOCTL que no está disponible, verá este tipo de salida.

0: kd> !ioctldecode 0x1280ce

Unknown IOCTL  : 0x1280ce 

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

Aunque no se identifica el IOCTL, se muestra información sobre los campos IOCTL.

Tenga en cuenta que solo un subconjunto de IOCTL definidos públicamente pueden ser identificados por el comando !ioctldecode.

Para obtener más información sobre los IOCTL, consulte Introducción de los códigos de control de E/S.

Para obtener más información general sobre los IRP y los IOCTL, consulte Windows Internals de Mark E. Russinovich, David A. Solomon y Alex Ionescu.