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

Los requisitos del búfer de entrada para este código de control de E/S se definen por el desarrollador del controlador gpIO. 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 por el desarrollador del controlador gpIO. Para obtener más información sobre los búferes de salida para METHOD_BUFFERED IRP, consulte Descripciones del 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 Status en STATUS_SUCCESS y establece el miembro Information 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 Status 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.

Comentarios

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 abordar los requisitos o funcionalidades especiales de un controlador GPIO en una plataforma de hardware determinada.

Solo un controlador de dispositivo periférico que sea consciente de las operaciones específicas del controlador compatibles con un tipo determinado de hardware del controlador GPIO puede usar IOCTL_GPIO_CONTROLLER_SPECIFIC_FUNCTION solicitudes 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 gpIO. Normalmente, el controlador usa este código de control para permitir que los controladores de dispositivos periféricos realicen operaciones específicas del hardware en los patillas GPIO a las que están conectados sus dispositivos.

Por ejemplo, el búfer de entrada en 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 para el 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 del modo kernel (KMDF) usan un identificador WDFIOTARGET para hacer referencia a este objeto de archivo.

Requisitos

Requisito Value
Cliente mínimo compatible Se admite a partir de Windows 8.
Encabezado gpio.h

Consulte también

FILE_OBJECT