Compartir a través de


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

La función de devolución de llamada de evento CLIENT_StopController realiza operaciones necesarias para preparar el dispositivo de controlador de E/S de uso general (GPIO) para salir del estado de alimentación D0.

Sintaxis

GPIO_CLIENT_STOP_CONTROLLER GpioClientStopController;

NTSTATUS GpioClientStopController(
  [in] PVOID Context,
  [in] BOOLEAN SaveContext,
  [in] WDF_POWER_DEVICE_STATE TargetState
)
{...}

Parámetros

[in] Context

Puntero al contexto del dispositivo del controlador GPIO.

[in] SaveContext

Si el controlador cliente debe guardar el contexto de hardware actual del dispositivo de controlador GPIO. Si es TRUE, se debe guardar el contexto de hardware. Si es FALSE, no se debe guardar el contexto de hardware. Para obtener más información, vea la sección Comentarios.

[in] TargetState

Estado de alimentación del dispositivo de destino. Este parámetro es un valor de enumeración WDF_POWER_DEVICE_STATE que especifica el estado de baja potencia que el dispositivo debe entrar cuando sale del estado de alimentación D0. El controlador del controlador GPIO puede usar esta información para determinar cómo configurar el dispositivo controlador antes de salir de D0.

Valor devuelto

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

Comentarios

El controlador del controlador GPIO implementa esta función de devolución de llamada. La extensión de marco gpIO (GpioClx) llama a esta función para preparar el dispositivo del controlador GPIO para que se desactive o para pasar a un estado de bajo consumo. Esta función de devolución de llamada debe realizar las operaciones necesarias antes de que el dispositivo entre en un estado de bajo consumo, como guardar cualquier información que el controlador necesitará más adelante después de restaurar el dispositivo al estado de alimentación D0.

Normalmente, la función de devolución de llamada CLIENT_StopController configura las patillas GPIO en un estado inicial específico de la plataforma. Por ejemplo, esta función puede configurar todas las patillas GPIO como entradas para evitar que se produzcan transitorios de salida cuando el dispositivo del controlador GPIO está desactivado.

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

Aunque se llama a la función de devolución de llamada CLIENT_StopController en IRQL = PASSIVE_LEVEL, no debe hacer que esta función sea paginable. La CLIENT_StopController devolución de llamada se encuentra en la ruta de acceso de tiempo crítica para restaurar la alimentación 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_StopController 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 está definiendo. 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_StopController denominada MyEvtGpioStopController, use el tipo de función GPIO_CLIENT_STOP_CONTROLLER, como se muestra en este ejemplo de código:

GPIO_CLIENT_STOP_CONTROLLER  MyEvtGpioStopController;

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

_Use_decl_annotations_
VOID
  MyEvtGpioStopController(
    PVOID Context,
    BOOLEAN RestoreContext,
    WDF_POWER_DEVICE_STATE TargetState
    )
{ ... }

El tipo de función GPIO_CLIENT_STOP_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_STOP_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, consulte Anotación del comportamiento de la función.

Requisitos

Requisito Value
Cliente mínimo compatible Se admite a partir de Windows 8.
Plataforma de destino Escritorio
Encabezado gpioclx.h
IRQL Se llama en PASSIVE_LEVEL.

Consulte también

GPIO_CLIENT_REGISTRATION_PACKET

GPIO_CLX_RegisterClient