função de retorno de chamada GPIO_CLIENT_START_CONTROLLER (gpioclx.h)
A função de retorno de chamada de evento CLIENT_StartController executa operações que são necessárias quando o dispositivo de controlador de E/S de uso geral (GPIO) entra no estado de energia D0.
Sintaxe
GPIO_CLIENT_START_CONTROLLER GpioClientStartController;
NTSTATUS GpioClientStartController(
[in] PVOID Context,
[in] BOOLEAN RestoreContext,
[in] WDF_POWER_DEVICE_STATE PreviousPowerState
)
{...}
Parâmetros
[in] Context
Um ponteiro para o contexto do dispositivo do driver do controlador GPIO.
[in] RestoreContext
Se o driver do cliente deve restaurar o controlador GPIO para um contexto de hardware salvo anteriormente. Se TRUE, o contexto de hardware deverá ser restaurado. Se FALSE, o contexto de hardware não deve ser restaurado. Para obter mais informações, consulte Comentários.
[in] PreviousPowerState
O estado de energia do dispositivo anterior. Esse parâmetro é um valor de enumeração WDF_POWER_DEVICE_STATE que especifica o estado de baixa potência do qual o dispositivo entrou no estado de energia D0. O driver do controlador GPIO pode usar essas informações para determinar como configurar o dispositivo controlador para que ele esteja pronto para uso.
Retornar valor
A função CLIENT_StartController retornará STATUS_SUCCESS se a chamada for bem-sucedida. Caso contrário, ele retornará um código de erro apropriado.
Comentários
Essa função de retorno de chamada é implementada pelo driver do controlador GPIO. A gpioClx (extensão de estrutura gpio) chama essa função para colocar o dispositivo controlador GPIO em um estado inicial conhecido na inicialização do sistema ou quando o dispositivo faz a transição de um estado de baixa potência para um estado de trabalho. Essa função de retorno de chamada deve executar todas as operações necessárias após o dispositivo ser ativado de um estado de baixa potência, como restaurar as informações necessárias pelo driver após o dispositivo entrar no estado de energia D0.
Normalmente, uma função de retorno de chamada CLIENT_StartController define todos os pinos gpio para seu estado padrão.
Para registrar a função de retorno de chamada CLIENT_StartController do driver, chame o método GPIO_CLX_RegisterClient . Esse método aceita, como um parâmetro de entrada, um ponteiro para uma estrutura GPIO_CLIENT_REGISTRATION_PACKET que contém um ponteiro de função CLIENT_StartController .
Embora a função de retorno de chamada CLIENT_StartController seja chamada em IRQL = PASSIVE_LEVEL, você não deve tornar essa função paginável. O retorno de chamada CLIENT_StartController está no caminho de tempo crítico para restaurar a energia para os dispositivos na plataforma de hardware e, por motivos de desempenho, não deve ser atrasado por falhas de página.
Exemplos
Para definir uma função de retorno de chamada CLIENT_StartController, primeiro você deve fornecer uma declaração de função que identifique o tipo de função de retorno de chamada que você está definindo. O Windows fornece um conjunto de tipos de função de retorno de chamada para drivers. Declarar uma função usando os tipos de função de retorno de chamada ajuda a Análise de Código para Drivers, SDV ( Verificador de Driver Estático ) e outras ferramentas de verificação a encontrar erros e é um requisito para gravar drivers para o sistema operacional Windows.
Por exemplo, para definir uma função de retorno de chamada CLIENT_StartController chamada MyEvtGpioStartController
, use o tipo de função GPIO_CLIENT_START_CONTROLLER, conforme mostrado neste exemplo de código:
GPIO_CLIENT_START_CONTROLLER MyEvtGpioStartController;
Em seguida, implemente a função de retorno de chamada da seguinte maneira:
_Use_decl_annotations_
VOID
MyEvtGpioStartController(
PVOID Context,
BOOLEAN RestoreContext,
WDF_POWER_DEVICE_STATE PreviousPowerState
)
{ ... }
O tipo de função GPIO_CLIENT_START_CONTROLLER é definido no arquivo de cabeçalho Gpioclx.h. Para identificar erros com mais precisão ao executar as ferramentas de análise de código, adicione a anotação Use_decl_annotations à sua definição de função. A anotação Use_decl_annotations garante que as anotações aplicadas ao tipo de função GPIO_CLIENT_START_CONTROLLER no arquivo de cabeçalho sejam usadas. Para obter mais informações sobre os requisitos para declarações de função, consulte Declarando funções usando tipos de função de função para drivers KMDF. Para obter mais informações sobre Use_decl_annotations, consulte Anotando o comportamento da função.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Com suporte começando com Windows 8. |
Plataforma de Destino | Área de Trabalho |
Cabeçalho | gpioclx.h |
IRQL | Chamado em PASSIVE_LEVEL (consulte Comentários). |