Compartir a través de


GPIO_CLIENT_START_CONTROLLER función de devolución de llamada (gpioclx.h)

La función de devolución de llamada de evento CLIENT_StartController realiza operaciones necesarias cuando el dispositivo de controlador de E/S de uso general (GPIO) entra en el estado de alimentación D0.

Sintaxis

GPIO_CLIENT_START_CONTROLLER GpioClientStartController;

NTSTATUS GpioClientStartController(
  [in] PVOID Context,
  [in] BOOLEAN RestoreContext,
  [in] WDF_POWER_DEVICE_STATE PreviousPowerState
)
{...}

Parámetros

[in] Context

Puntero al contexto del dispositivo del controlador GPIO.

[in] RestoreContext

Si el controlador cliente debe restaurar el controlador GPIO en un contexto de hardware guardado previamente. Si es TRUE, se debe restaurar el contexto de hardware. Si es FALSE, no se debe restaurar el contexto de hardware. Para obtener más información, vea Comentarios.

[in] PreviousPowerState

Estado de alimentación del dispositivo anterior. Este parámetro es un WDF_POWER_DEVICE_STATE valor de enumeración que especifica el estado de baja potencia desde el que el dispositivo entró en el estado de energía D0. El controlador del controlador GPIO puede usar esta información para determinar cómo configurar el dispositivo controlador para que esté listo para usarse.

Valor devuelto

La función CLIENT_StartController devuelve STATUS_SUCCESS si la llamada se realiza correctamente. De lo contrario, devuelve un código de error adecuado.

Observaciones

El controlador del controlador GPIO implementa esta función de devolución de llamada. La extensión del marco GPIO (GpioClx) llama a esta función para colocar el dispositivo del controlador GPIO en un estado inicial conocido en el inicio del sistema o cuando el dispositivo pasa de un estado de baja potencia a un estado de funcionamiento. Esta función de devolución de llamada debe realizar las operaciones necesarias después de que el dispositivo se active desde un estado de baja potencia, como restaurar cualquier información que necesite el controlador después de que el dispositivo entre en el estado de energía D0.

Normalmente, una función de devolución de llamada CLIENT_StartController establece todos los patillas GPIO en su estado predeterminado.

Para registrar la función de devolución de llamada CLIENT_StartController del controlador, llame al método GPIO_CLX_RegisterClient. Este método acepta, como parámetro de entrada, un puntero a una estructura GPIO_CLIENT_REGISTRATION_PACKET que contiene un puntero de función CLIENT_StartController.

Aunque se llama a la función de devolución de llamada CLIENT_StartController en IRQL = PASSIVE_LEVEL, no debe hacer que esta función paginable . La CLIENT_StartController devolución de llamada está en la ruta de tiempo crítica para restaurar la energía en los dispositivos de la plataforma de hardware y, por motivos de rendimiento, no debe retrasarse por errores de página.

Ejemplos

Para definir un CLIENT_StartController función de devolución de llamada, primero debe proporcionar una declaración de función que identifique el tipo de función de devolución de llamada que va a definir. Windows proporciona un conjunto de tipos de función de devolución de llamada para controladores. Declarar una función mediante los tipos de función de devolución de llamada ayuda a Análisis de código para controladores, comprobador de controladores estáticos (SDV) y otras herramientas de comprobación encuentran errores y es un requisito para escribir controladores para el sistema operativo Windows.

Por ejemplo, para definir una función de devolución de llamada CLIENT_StartController denominada MyEvtGpioStartController, use el tipo de función GPIO_CLIENT_START_CONTROLLER, como se muestra en este ejemplo de código:

GPIO_CLIENT_START_CONTROLLER MyEvtGpioStartController;

A continuación, implemente la función de devolución de llamada de la siguiente manera:

_Use_decl_annotations_
VOID
  MyEvtGpioStartController(
    PVOID Context,
    BOOLEAN RestoreContext,
    WDF_POWER_DEVICE_STATE PreviousPowerState
    )
{ ... }

El tipo de función GPIO_CLIENT_START_CONTROLLER se define en el archivo de encabezado Gpioclx.h. Para identificar con más precisión los errores al ejecutar las herramientas de análisis de código, asegúrese de agregar la anotación Use_decl_annotations a la definición de función. La anotación Use_decl_annotations garantiza que se usen las anotaciones que se aplican al tipo de función GPIO_CLIENT_START_CONTROLLER en el archivo de encabezado. Para obtener más información sobre los requisitos de las declaraciones de función, consulte Declaración de funciones mediante tipos de rol de función para controladores kmDF. Para obtener más información sobre Use_decl_annotations, vea Anotación del comportamiento de la función.

Requisitos

Requisito Valor
cliente mínimo admitido Se admite a partir de Windows 8.
de la plataforma de destino de Escritorio
encabezado de gpioclx.h
irQL Se llama en PASSIVE_LEVEL (ver comentarios).

Consulte también

GPIO_CLIENT_REGISTRATION_PACKET

GPIO_CLX_RegisterClient