Функция IofGetDriverProxyWrapperFromEndpoint (wdm.h)

Функция IofGetDriverProxyWrapperFromEndpoint получает указатель на оболочку для функции конечной точки с помощью указателя функции конечной точки.

Синтаксис

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

Параметры

DriverProxyExtension

[in] Указатель на расширение DriverProxy, в которое зарегистрированы конечные точки. Это расширение было создано перед вызовом IoCreateDriverProxyExtension.

Endpoint

[in] Указатель на функцию конечной точки, для которой требуется найти оболочку. Это должен быть указатель функции, который ранее был зарегистрирован в IoRegisterDriverProxyEndpoints.

Wrapper

[out] Указатель на переменную, которая получает указатель на функцию оболочки конечной точки. Если конечная точка найдена, это указывает на функцию-оболочку, которая должна вызываться вместо исходной конечной точки.

Возвращаемое значение

IofGetDriverProxyWrapperFromEndpoint возвращает одно из следующих значений NTSTATUS:

Код возврата Description
STATUS_SUCCESS Функция-оболочка успешно найдена и возвращена.
STATUS_NOT_FOUND Указанная функция конечной точки не найдена в зарегистрированных конечных точках.

Замечания

Эта функция является стандартным методом для получения оболочки конечных точек в Driver Hot-Swap версии 2. Указатель конечной точки, переданный этой функции, должен точно соответствовать указателю, который был определен во время процесса перечисления автоматических конечных точек.

Чтобы избежать предупреждений компилятора при вызове этой функции, может потребоваться приведение параметров конечной точки и оболочки . Для удобства предоставляется макрос IoGetDriverProxyWrapperFromEndpoint , который обрабатывает приведение типов автоматически. Рекомендуется использовать макрос вместо вызова этой функции напрямую.

Функция может вызываться на любом уровне IRQL и выполнять быструю операцию подстановки.

После получения оболочки драйверы должны вызывать функцию-оболочку вместо исходной функции конечной точки, чтобы включить функцию горячей замены.

Требования

Требование Ценность
целевая платформа Всеобщий
Header wdm.h
Library NtosKrnl.lib
IRQL Любой уровень

См. также

IoCreateDriverProxyExtension

DRIVER_PROXY_ENDPOINT_FUNCTION