Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Макрос IoGetDriverProxyWrapperFromEndpoint получает указатель на оболочку для функции конечной точки с помощью указателя функции конечной точки. Этот макрос предоставляет удобную оболочку вокруг IofGetDriverProxyWrapperFromEndpoint с автоматическим приведением типов.
Этот макрос является стандартным методом для получения оболочки конечных точек в Driver Hot-Swap версии 2. Он обрабатывает приведение типов автоматически и предоставляет более чистый интерфейс по сравнению с вызовом базовой функции напрямую.
Синтаксис
void IoGetDriverProxyWrapperFromEndpoint(
DriverProxyExtension,
Endpoint,
Wrapper
);
Параметры
DriverProxyExtension
[in] Указатель на расширение DriverProxy, в которое зарегистрированы конечные точки. Это расширение было создано перед вызовом IoCreateDriverProxyExtension.
Endpoint
[in] Указатель на функцию конечной точки DRIVER_PROXY_ENDPOINT_FUNCTION , для которой требуется найти оболочку. Это должен быть указатель функции, который был определен во время процесса перечисления автоматических конечных точек в Driver Hot-Swap версии 2.
Wrapper
[out] Указатель на переменную, которая получает указатель на функцию-оболочку DRIVER_PROXY_ENDPOINT_FUNCTION . Если конечная точка найдена, оболочка будет указана на функцию-оболочку, которая должна вызываться вместо исходной конечной точки. Если конечная точка не найдена, оболочка имеет значение NULL.
Возвращаемое значение
None
Замечания
Этот макрос предназначен для driver Hot-Swap версии 2, который использует автоматическое перечисление конечных точек на основе компилятора, а не ручную регистрацию конечных точек. Указатель конечной точки, переданный этому макросу, должен точно соответствовать указателю, который был определен во время процесса перечисления автоматических конечных точек.
Макрос автоматически обрабатывает приведение типов, что упрощает использование, чем базовая функция IofGetDriverProxyWrapperFromEndpoint . Это устраняет потенциальные предупреждения компилятора, связанные с преобразованиями типов указателя.
Макрос можно использовать на любом уровне IRQL и выполнять быструю операцию подстановки.
После получения оболочки драйверы должны вызывать функцию-оболочку вместо исходной функции конечной точки, чтобы включить функцию горячей замены. Это позволяет заменить реализацию функции во время выполнения без выгрузки драйвера.
В драйвере Hot-Swap версии 2 конечные точки автоматически обнаруживаются и регистрируются во время процесса сборки с помощью компилятора и анализа .shsept компоновщика раздела, что устраняет необходимость регистрации вручную конечной точки.
Требования
| Требование | Ценность |
|---|---|
| целевая платформа | Всеобщий |
| Header | wdm.h |
| IRQL | Любой уровень |