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