функция FILTER_SYNCHRONOUS_OID_REQUEST_COMPLETE (ndis.h)
NDIS вызывает функцию FilterSynchronousOidRequestComplete драйвера фильтра после завершения запроса синхронного идентификатора OID от базового драйвера.
Эта функция поддерживается в NDIS 6.81 и более поздних версиях.
Синтаксис
void FILTER_SYNCHRONOUS_OID_REQUEST_COMPLETE(
[in] NDIS_HANDLE FilterModuleContext,
[in, out] NDIS_OID_REQUEST *OidRequest,
[in, out] NDIS_STATUS *Status,
[in] PVOID CallContext
);
Параметры
[in] FilterModuleContext
Дескриптор области контекста для модуля фильтра, который является целевым объектом этого запроса. Драйвер фильтра создал и инициализировал эту область контекста в функции FilterAttach .
[in, out] OidRequest
Указатель на структуру NDIS_OID_REQUEST , указывающую выполняемую операцию.
[in, out] Status
Указатель на результирующий код состояния завершаемого запроса.
[in] CallContext
Слот хранения размера PVOID для драйвера фильтра для совместного использования состояния между обработчиками FilterSynchronousOidRequest и FilterSynchronousOidRequestComplete . Если драйвер фильтра реализует обработчик FilterSynchronousOidRequest , этот параметр содержит значение контекста, возвращаемое обработчиком FilterSynchronousOidRequest . В противном случае, если драйвер фильтра не реализует обработчик FilterSynchronousOidRequest , это значение равно нулю.
Возвращаемое значение
None
Remarks
FilterSynchronousOidRequestComplete является необязательной функцией. Если драйверу фильтра не нужно наблюдать или изменять синхронные запросы OID, выполненные из драйвера мини-порта, драйвер фильтра должен задать точку входа для этой функции значение NULL при вызове NdisFRegisterFilterDriver.
NDIS вызывает функцию FilterSynchronousOidRequestComplete драйвера фильтра для обработки синхронных запросов OID, которые выполняются базовыми драйверами. Драйверы фильтров могут считывать или изменять некоторые поля в структуре NDIS_OID_REQUEST следующим образом:
Поле | Фильтрация доступа |
---|---|
Заголовок | Только для чтения |
RequestType | Чтение/запись |
PortNumber | Чтение/запись |
Время ожидания | Не получать доступ |
RequestId | Не получать доступ |
RequestHandle | Чтение/запись |
DATA | Чтение/запись |
NdisReserved | Не получать доступ |
MiniportReserved | Не получать доступ |
SourceReserved | Не получать доступ |
SupportedRevision | Чтение/запись |
Reserved1, Reserved2 | Не получать доступ |
SwitchId | Чтение/запись |
VPortId | Чтение/запись |
Флаги | Чтение/запись |
Помимо изменения структуры NDIS_OID_REQUEST , драйверы фильтров могут считывать или изменять код состояния, с помощью которого выполнена операция. Драйвер фильтра может записать новое значение в параметр *Status . Драйверы фильтров не должны записывать NDIS_STATUS_PENDING или NDIS_STATUS_ALREADY_COMPLETE в параметр *Status .
Если драйвер фильтра также регистрирует обработчик FilterSynchronousOidRequest , NDIS гарантирует, что обработчик FilterSynchronousOidRequestComplete будет вызван только в том случае, если обработчик FilterSynchronousOidRequest возвращает NDIS_STATUS_SUCCESS.
Ожидается, что драйверы фильтров будут быстро возвращать данные из обработчика FilterSynchronousOidRequestComplete , не блокируя, не ожидая или не переходя в спящий режим. Синхронные запросы OID используются только для операций с низкой задержкой, и драйверы фильтров должны стремиться продолжить или завершить их в течение нескольких миллисекунд.
NDIS не сериализует синхронные запросы OID друг к другу, к другим запросам OID или FilterPause. За реализацию любой необходимой синхронизации отвечает драйвер фильтра.
NDIS сериализует синхронные запросы OID к FilterDetach. NDIS гарантирует, что синхронные запросы OID не будут активны после вызова FilterDetach .
Драйверы фильтров не должны вызывать NdisAllocateCloneOidRequest или NdisCancelOidRequest в синхронном запросе OID. Драйверы фильтров не должны вызывать NdisFSynchronousOidRequest в запросе OID, полученном через обработчик FilterSynchronousOidRequestComplete .
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 10 версии 1709 |
Целевая платформа | Windows |
Header | ndis.h (включая Ndis.h) |
IRQL | <= DISPATCH_LEVEL |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по