Compartir a través de


IOCTL_GPIO_CONTROLLER_SPECIFIC_FUNCTION IOCTL (gpio.h)

El IOCTL_GPIO_CONTROLLER_SPECIFIC_FUNCTION código de control de E/S permite que un cliente del controlador de E/S de uso general (GPIO) solicite una operación de control de dispositivo específica del controlador. Normalmente, los clientes de un controlador GPIO son controladores para dispositivos periféricos que se conectan a patillas GPIO.

Código principal

IRP_MJ_DEVICE_CONTROL

Búfer de entrada

El desarrollador del controlador de controlador GPIO define los requisitos del búfer de entrada para este código de control de E/S. Para obtener más información sobre los búferes de entrada para METHOD_BUFFERED IRP, consulte Descripciones de búferes para códigos de control de E/S.

Búfer de salida

Los requisitos del búfer de salida para este código de control de E/S se definen mediante el desarrollador del controlador de controlador GPIO. Para obtener más información sobre los búferes de salida para irP de METHOD_BUFFERED, consulte Descripciones de búfer para códigos de control de E/S.

Bloque de estado

Si la operación se realiza correctamente, el controlador del controlador GPIO establece el miembro estado de en STATUS_SUCCESS y establece el miembro Información en el número total de bytes escritos en el búfer de salida. Si una operación no genera datos de salida o el puntero de datos de salida es NULL, el miembro Information se establece en cero.

Si el búfer de entrada no es lo suficientemente grande como para contener los parámetros de entrada o el búfer de salida no es lo suficientemente grande como para contener los parámetros de salida para la operación específica del controlador, el miembro Status se establece en STATUS_BUFFER_TOO_SMALL.

Si se produce un error en esta solicitud, el miembro estado de se establece en un código de error y el miembro Information se establece en cero.

Si el controlador del controlador GPIO no admite operaciones específicas del controlador, el miembro Status se establece en STATUS_NOT_IMPLEMENTED. Si el controlador del controlador GPIO admite operaciones específicas del controlador, pero no reconoce el contenido del búfer de entrada como válido, el miembro Status se establece en STATUS_NOT_SUPPORTED.

Observaciones

Los controladores GPIO típicos no admiten solicitudes de IOCTL_GPIO_CONTROLLER_SPECIFIC_FUNCTION. Sin embargo, un desarrollador de controladores de controlador tiene la opción de definir una o varias operaciones específicas del controlador para satisfacer los requisitos o funcionalidades especiales de un controlador GPIO en una plataforma de hardware determinada.

Solo un controlador de dispositivo periférico que conoce las operaciones específicas del controlador compatibles con un tipo determinado de hardware de controlador GPIO puede usar solicitudes de IOCTL_GPIO_CONTROLLER_SPECIFIC_FUNCTION para realizar estas operaciones. Un controlador de dispositivo periférico que usa estas solicitudes para realizar operaciones específicas del controlador en una plataforma de hardware corre el riesgo de pérdida de compatibilidad con otras plataformas que no admiten estas operaciones.

El significado del código de control de IOCTL_GPIO_CONTROLLER_SPECIFIC_FUNCTION está definido por el desarrollador del controlador del controlador GPIO. Normalmente, el controlador del controlador usa este código de control para permitir que los controladores de dispositivos periféricos realicen operaciones específicas del hardware en las patillas GPIO a las que están conectados sus dispositivos.

Por ejemplo, el búfer de entrada a la solicitud de IOCTL_GPIO_CONTROLLER_SPECIFIC_FUNCTION podría contener un código de comando definido por el controlador y algún número de parámetros de entrada. El controlador del controlador GPIO puede escribir o no datos en el búfer de salida, en función del código de comando.

El controlador de dispositivo periférico envía esta solicitud de control de E/S al objeto de archivo del dispositivo GPIO de destino. El objeto de archivo es una estructura FILE_OBJECT que representa una conexión abierta a un conjunto de patillas en el controlador GPIO. Los controladores del marco de controladores en modo kernel (KMDF) usan un identificador WDFIOTARGET para hacer referencia a este objeto de archivo.

Requisitos

Requisito Valor
cliente mínimo admitido Se admite a partir de Windows 8.
encabezado de gpio.h

Consulte también

FILE_OBJECT