Compartilhar via


DRIVER_PROXY_REGISTER_CALLBACK_PHASE enumeração (wdm.h)

A enumeração DRIVER_PROXY_REGISTER_CALLBACK_PHASE define as diferentes fases durante as quais um retorno de chamada DRIVER_PROXY_REGISTER_CALLBACK pode ser invocado durante o registro de ponto de extremidade ou operações de hot-swap.

Sintaxe

typedef enum _DRIVER_PROXY_REGISTER_CALLBACK_PHASE {
  DriverProxyRegisterCallbackPreProcess,
  DriverProxyRegisterCallbackProxyStalled,
  DriverProxyRegisterCallbackPostProcess,
  DriverProxyRegisterCallbackMax
} DRIVER_PROXY_REGISTER_CALLBACK_PHASE, *PDRIVER_PROXY_REGISTER_CALLBACK_PHASE;

Constants

 
DriverProxyRegisterCallbackPreProcess
Indica a fase de pré-processamento. O retorno de chamada é invocado antes de qualquer alternância de função de ponto de extremidade começar, permitindo que o driver execute operações de preparação, como adquirir bloqueios, salvar o estado ou notificar outros componentes da alteração iminente.
DriverProxyRegisterCallbackProxyStalled
Indica a fase paralisada do proxy. O retorno de chamada é invocado enquanto todas as chamadas para pontos de extremidade registrados são bloqueadas (paralisadas). Durante essa fase, o sistema DriverProxy adquiriu o bloqueio de rundown e nenhuma nova chamada para funções de ponto de extremidade continuará. Esse é o momento mais seguro para o driver executar operações que exigem acesso exclusivo aos recursos que podem ser acessados por funções de ponto de extremidade.
DriverProxyRegisterCallbackPostProcess
Indica a fase pós-processamento. O retorno de chamada é invocado depois que a alternância de função de ponto de extremidade é concluída e a operação normal é retomada. Isso permite que o driver execute operações de limpeza, bloqueios de versão, estado de atualização ou notificar outros componentes que a operação de hot-swap concluiu.
DriverProxyRegisterCallbackMax
Valor máximo para a enumeração. Esse valor não é usado como uma fase de retorno de chamada e é reservado para fins de validação interna.

Observações

Essa enumeração é usada por IoRegisterDriverProxyEndpoints para indicar qual fase do processo de registro está sendo executada no momento quando o retorno de chamada DRIVER_PROXY_REGISTER_CALLBACK é invocado.

As fases de retorno de chamada ocorrem em uma sequência específica durante o registro de ponto de extremidade ou operações de hot-swap:

  1. DriverProxyRegisterCallbackPreProcess: chamado antes de qualquer alternância de função começar.
  2. DriverProxyRegisterCallbackProxyStalled: Chamado enquanto todas as chamadas de ponto de extremidade são bloqueadas.
  3. DriverProxyRegisterCallbackPostProcess: chamado após a conclusão da alternância de função.

Cada fase serve a uma finalidade diferente na operação de hot-swap:

  • A fase de Pré-Processamento permite que os drivers se preparem para a próxima alteração.
  • A fase ProxyStalled fornece acesso exclusivo quando as chamadas de ponto de extremidade são bloqueadas.
  • A fase PostProcess permite que os drivers limpem após a conclusão da alteração.

O retorno de chamada deve retornar STATUS_SUCCESS para que a operação continue. Se qualquer fase de retorno de chamada retornar um status de falha, toda a operação de registro falhará e quaisquer alterações parciais serão revertidas.

Requirements

Requirement Value
Header wdm.h

Consulte também

DRIVER_PROXY_REGISTER_CALLBACK

IoRegisterDriverProxyEndpoints

DRIVER_PROXY_ENDPOINT_INFORMATION