Compartilhar via


Função IofGetDriverProxyWrapperFromEndpoint (wdm.h)

A função IofGetDriverProxyWrapperFromEndpoint obtém o ponteiro para o wrapper de uma função de ponto de extremidade usando o ponteiro da função de ponto de extremidade.

Sintaxe

NTSTATUS IofGetDriverProxyWrapperFromEndpoint(
  PDRIVER_PROXY_EXTENSION                 DriverProxyExtension,
  PDRIVER_PROXY_ENDPOINT_FUNCTION         Endpoint,
  PDRIVER_PROXY_WRAPPED_ENDPOINT_FUNCTION *Wrapper
);

Parâmetros

DriverProxyExtension

[in] Um ponteiro para a extensão DriverProxy na qual os pontos de extremidade estão registrados. Essa extensão foi criada em uma chamada anterior para IoCreateDriverProxyExtension.

Endpoint

[in] Um ponteiro para a função de ponto de extremidade para a qual localizar o wrapper. Esse deve ser um ponteiro de função que foi registrado anteriormente com IoRegisterDriverProxyEndpoints.

Wrapper

[out] Um ponteiro para uma variável que recebe um ponteiro para a função de ponto de extremidade encapsulada. Se o ponto de extremidade for encontrado, isso apontará para a função wrapper que deve ser chamada em vez do ponto de extremidade original.

Valor de retorno

IofGetDriverProxyWrapperFromEndpoint retorna um dos seguintes valores NTSTATUS:

Código de retorno Description
STATUS_SUCCESS A função wrapper foi encontrada e retornada com êxito.
STATUS_NOT_FOUND A função de ponto de extremidade especificada não foi encontrada nos pontos de extremidade registrados.

Observações

Essa função é o método padrão para recuperar wrappers de ponto de extremidade no Driver Hot-Swap V2. O ponteiro de ponto de extremidade passado para essa função deve corresponder exatamente a um ponteiro que foi identificado durante o processo de enumeração do ponto de extremidade automático.

Para evitar avisos do compilador ao chamar essa função, talvez seja necessário converter os parâmetros Ponto de Extremidade e Wrapper . Para conveniência, uma macro IoGetDriverProxyWrapperFromEndpoint é fornecida que manipula o tipo de conversão automaticamente. É recomendável usar a macro em vez de chamar essa função diretamente.

A função pode ser chamada em qualquer nível de IRQL e executa uma operação de pesquisa rápida.

Depois que um wrapper é obtido, os drivers devem chamar a função wrapper em vez da função de ponto de extremidade original para habilitar a funcionalidade de hot-swappable.

Requirements

Requirement Value
da Plataforma de Destino Universal
Header wdm.h
Library NtosKrnl.lib
IRQL Qualquer nível

Consulte também

IoCreateDriverProxyExtension

DRIVER_PROXY_ENDPOINT_FUNCTION