функция обратного вызова DRIVER_PROXY_ENDPOINT_FUNCTION (wdm.h)

Обратный вызов DRIVER_PROXY_ENDPOINT_FUNCTION определяет сигнатуру функции для функции горячей замены конечной точки в системе DriverProxy. Это универсальный тип указателя функции, представляющий любую функцию драйвера, которая может быть выполнена с помощью платформы Driver Hot-Swap.

Синтаксис

DRIVER_PROXY_ENDPOINT_FUNCTION DriverProxyEndpointFunction;

VOID DriverProxyEndpointFunction()
{...}

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

None

Замечания

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

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

В драйвере Hot-Swap версии 2 функции конечных точек автоматически обнаруживаются во время процесса сборки с помощью анализа компилятора и компоновщика. Компилятор определяет функции, которые должны быть горячими и помещают сведения о них в .shsept раздел двоичного файла.

Ключевые характеристики функций конечных точек:

  • Их можно заменить во время выполнения с помощью системы DriverProxy
  • К ней обращаются через функции-оболочки, возвращаемые IoGetDriverProxyWrapperFromEndpoint
  • Они должны быть связаны с расширением DriverProxy, созданным IoCreateDriverProxyExtension
  • Их замена координируется через инфраструктуру DriverProxy, чтобы обеспечить безопасность потоков

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

Требования

Требование Ценность
целевая платформа Всеобщий
Header wdm.h
IRQL Variable

См. также

IoGetDriverProxyWrapperFromEndpoint

IofGetDriverProxyWrapperFromEndpoint

IoCreateDriverProxyExtension

DRIVER_PROXY_ENDPOINT_INFORMATION