Compartilhar via


Macro IoGetDriverProxyWrapperFromEndpoint (wdm.h)

A macro IoGetDriverProxyWrapperFromEndpoint 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. Essa macro fornece um wrapper conveniente em torno de IofGetDriverProxyWrapperFromEndpoint com conversão automática de tipo.

Essa macro é o método padrão para recuperar wrappers de ponto de extremidade no Driver Hot-Swap V2. Ele manipula o tipo de conversão automaticamente e fornece uma interface mais limpa em comparação com a chamada da função subjacente diretamente.

Sintaxe

void IoGetDriverProxyWrapperFromEndpoint(
  DriverProxyExtension,
  Endpoint,
  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 uma função de ponto de extremidade DRIVER_PROXY_ENDPOINT_FUNCTION para a qual localizar o wrapper. Esse deve ser um ponteiro de função que foi identificado durante o processo de enumeração de ponto de extremidade automático no Driver Hot-Swap V2.

Wrapper

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

Valor de retorno

None

Observações

Essa macro foi projetada para o Driver Hot-Swap V2, que usa enumeração de ponto de extremidade baseada em compilador automático em vez de registro manual de ponto de extremidade. O ponteiro de ponto de extremidade passado para essa macro deve corresponder exatamente a um ponteiro identificado durante o processo de enumeração do ponto de extremidade automático.

A macro manipula o tipo de conversão automaticamente, tornando mais conveniente usar do que a função IofGetDriverProxyWrapperFromEndpoint subjacente. Isso elimina possíveis avisos do compilador relacionados a conversões de tipo de ponteiro.

A macro pode ser usada 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. Isso permite que a implementação da função seja substituída no runtime sem descarregar o driver.

No Driver Hot-Swap V2, os pontos de extremidade são automaticamente descobertos e registrados durante o processo de build por meio da análise do compilador e do vinculador da .shsept seção, eliminando a necessidade de registro manual de ponto de extremidade.

Requirements

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

Consulte também

IofGetDriverProxyWrapperFromEndpoint

IoCreateDriverProxyExtension

DRIVER_PROXY_ENDPOINT_FUNCTION