функция обратного вызова FILTER_CANCEL_DIRECT_OID_REQUEST (ndis.h)
NDIS вызывает функцию FilterCancelDirectOidRequest драйвера фильтра, чтобы отменить прямой запрос OID.
Синтаксис
FILTER_CANCEL_DIRECT_OID_REQUEST FilterCancelDirectOidRequest;
void FilterCancelDirectOidRequest(
[in] NDIS_HANDLE FilterModuleContext,
[in] PVOID RequestId
)
{...}
Параметры
[in] FilterModuleContext
Дескриптор области контекста для модуля фильтра, который является целевым объектом этого запроса. Драйвер фильтра создал и инициализировал эту область контекста в функции FilterAttach .
[in] RequestId
Идентификатор отмены для запроса. Этот идентификатор указывает прямые запросы OID, соответствующие этому значению в элементе RequestIdструктуры NDIS_OID_REQUEST .
Возвращаемое значение
None
Remarks
FilterCancelDirectOidRequest является необязательной функцией. Если драйвер фильтра не использует прямые запросы OID, он может задать точку входа для этой функции значение NULL при вызовеФункция NdisFRegisterFilterDriver.
Когда NDIS вызывает FilterCancelDirectOidRequest, драйвер фильтра должен попытаться вызватьФункция NdisFDirectOidRequestComplete как можно скорее.
Если драйвер фильтра не ставит в очередь прямые запросы OID, драйверу не требуется предоставлять функцию FilterCancelDirectOidRequest . Если драйвер фильтра не указывает точку входа FilterCancelDirectOidRequest , NDIS вызывает функцию запроса cancel OID базового драйвера.
NDIS вызывает функцию FilterCancelDirectOidRequest , когда инициатор запроса отменяет запрос.
Если обработка запроса по-прежнему не завершена в драйвере фильтра, драйвер вызывает функцию NdisFDirectOidRequestComplete с состоянием NDIS_STATUS_REQUEST_ABORTED.
Если драйвер фильтра перенаправил запрос базовому драйверу и обработка по-прежнему не завершена, драйвер фильтра вызываетФункция NdisFCancelDirectOidRequest с параметром OidRequest, равным значению, отправленного базовому драйверу.
NDIS вызывает FilterCancelDirectOidRequest по адресу IRQL <= DISPATCH_LEVEL.
Примеры
Чтобы определить функцию FilterCancelDirectOidRequest , необходимо сначала предоставить объявление функции, определяющее тип определяемой функции. Windows предоставляет набор типов функций для драйверов. Объявление функции с помощью типов функций помогает анализу кода для драйверов, средству проверки статических драйверов (SDV) и другим средствам проверки находить ошибки, и это требование для написания драйверов для операционной системы Windows.Например, чтобы определить функцию FilterCancelDirectOidRequest с именем MyCancelDirectOidRequest, используйте тип FILTER_CANCEL_DIRECT_OID_REQUEST , как показано в следующем примере кода:
FILTER_CANCEL_DIRECT_OID_REQUEST MyCancelDirectOidRequest;
Затем реализуйте функцию следующим образом:
_Use_decl_annotations_
VOID
MyCancelDirectOidRequest(
NDIS_HANDLE FilterModuleContext,
PVOID RequestId
)
{...}
Тип функции FILTER_CANCEL_DIRECT_OID_REQUEST определен в файле заголовка Ndis.h. Чтобы более точно определить ошибки при запуске средств анализа кода, не забудьте добавить заметку Use_decl_annotations в определение функции. Заметка Use_decl_annotations гарантирует использование заметок, которые применяются к типу функции FILTER_CANCEL_DIRECT_OID_REQUEST в файле заголовка. Дополнительные сведения о требованиях к объявлениям функций см. в статье Объявление функций с помощью типов ролей функций для драйверов NDIS.
Сведения о Use_decl_annotations см. в статье Поведение функции с заметками.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Поддерживается в NDIS 6.1 и более поздних версиях. |
Целевая платформа | Windows |
Header | ndis.h (включая Ndis.h) |
IRQL | <= DISPATCH_LEVEL |
Правила соответствия DDI | SpinLock(ndis), SpinLockBalanced(ndis), SpinLockDpr(ndis) |
См. также раздел
NdisFDirectOidRequestCompleteОбратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по