Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Перечисление DRIVER_PROXY_REGISTER_CALLBACK_PHASE определяет различные этапы, в течение которых можно вызвать обратный вызов DRIVER_PROXY_REGISTER_CALLBACK во время регистрации конечной точки или операций горячего переключения.
Синтаксис
typedef enum _DRIVER_PROXY_REGISTER_CALLBACK_PHASE {
DriverProxyRegisterCallbackPreProcess,
DriverProxyRegisterCallbackProxyStalled,
DriverProxyRegisterCallbackPostProcess,
DriverProxyRegisterCallbackMax
} DRIVER_PROXY_REGISTER_CALLBACK_PHASE, *PDRIVER_PROXY_REGISTER_CALLBACK_PHASE;
Constants
DriverProxyRegisterCallbackPreProcessУказывает этап предварительной обработки. Обратный вызов вызывается перед началом переключения функций конечной точки, позволяя драйверу выполнять операции подготовки, такие как получение блокировок, сохранение состояния или уведомление других компонентов о предстоящем изменении. |
DriverProxyRegisterCallbackProxyStalledУказывает этап остановленного прокси-сервера. Обратный вызов вызывается, пока все вызовы зарегистрированных конечных точек блокируются (застопорились). На этом этапе система DriverProxy приобрела блокировку запуска и новые вызовы функций конечной точки не будут продолжаться. Это самое безопасное время для драйвера для выполнения операций, требующих монопольного доступа к ресурсам, которые могут быть доступны функциями конечных точек. |
DriverProxyRegisterCallbackPostProcessУказывает этап после обработки. Обратный вызов вызывается после завершения переключения функции конечной точки и возобновления нормальной работы. Это позволяет драйверу выполнять операции очистки, блокировки выпуска, состояние обновления или уведомлять другие компоненты о завершении операции горячего переключения. |
DriverProxyRegisterCallbackMaxМаксимальное значение перечисления. Это значение не используется в качестве этапа обратного вызова и зарезервировано для внутренних целей проверки. |
Замечания
Это перечисление используется IoRegisterDriverProxyEndpoints , чтобы указать, какой этап процесса регистрации в настоящее время выполняется при вызове обратного вызова DRIVER_PROXY_REGISTER_CALLBACK .
Этапы обратного вызова происходят в определенной последовательности во время регистрации конечной точки или операций горячего переключения:
- DriverProxyRegisterCallbackPreProcess: вызывается перед началом переключения функций.
- DriverProxyRegisterCallbackProxyStalled: вызывается во время блокировки всех вызовов конечной точки.
- DriverProxyRegisterCallbackPostProcess: вызывается после завершения переключения функций.
Каждый этап служит другой целью в операции горячего переключения:
- Этап препроцесса позволяет драйверам подготовиться к предстоящему изменению.
- Этап ProxyStalled предоставляет монопольный доступ при блокировке вызовов конечных точек.
- Этап PostProcess позволяет драйверам очиститься после завершения изменения.
Обратный вызов должен возвращать STATUS_SUCCESS для продолжения операции. Если любой этап обратного вызова возвращает состояние сбоя, операция регистрации завершится ошибкой, и откат будут откатированы частичные изменения.
Требования
| Требование | Ценность |
|---|---|
| Header | wdm.h |
См. также
DRIVER_PROXY_REGISTER_CALLBACK