Поделиться через


функция обратного вызова MINIPORT_CANCEL_DIRECT_OID_REQUEST (ndis.h)

NDIS вызывает функцию MiniportCancelDirectOidRequest драйвера miniport, чтобы отменить прямой запрос OID.

Примечание Функцию необходимо объявить с помощью типа MINIPORT_CANCEL_DIRECT_OID_REQUEST . Дополнительные сведения см. в следующем разделе Примеры.
 

Синтаксис

MINIPORT_CANCEL_DIRECT_OID_REQUEST MiniportCancelDirectOidRequest;

void MiniportCancelDirectOidRequest(
  [in] NDIS_HANDLE MiniportAdapterContext,
  [in] PVOID RequestId
)
{...}

Параметры

[in] MiniportAdapterContext

Дескриптор контекстной области, выделенной драйвером мини-порта в функции MiniportInitializeEx . Драйвер мини-порта использует эту контекстную область для хранения сведений о состоянии адаптера мини-порта.

[in] RequestId

Идентификатор отмены для запроса. Этот идентификатор указывает прямые запросы OID, соответствующие этому значению в элементе RequestIdструктуры NDIS_OID_REQUEST .

Возвращаемое значение

None

Remarks

MiniportCancelDirectOidRequest является необязательной функцией. Драйвер мини-порта регистрирует эту функцию, если он обрабатывает прямые запросы OID. Драйвер указывает точку входа MiniportCancelDirectOidRequest при вызовеФункция NdisMRegisterMiniportDriver. Драйвер мини-порта, который регистрируетФункция MiniportDirectOidRequest также должна зарегистрировать MiniportCancelDirectOidRequest.

Когда NDIS вызывает MiniportCancelDirectOidRequest, драйвер мини-порта должен попытаться вызватьФункция NdisMDirectOidRequestComplete как можно скорее.

NDIS вызывает MiniportCancelDirectOidRequest , когда инициатор запроса отменяет запрос. Для прямых запросов OID NDIS не вызывает MiniportCancelDirectOidRequest , если истекает время ожидания. (Время ожидания указывается в элементе Timeout каждой структуры NDIS_OID_REQUEST .)

Если обработка запроса в драйвере мини-порта по-прежнему не завершена, драйвер вызывает функцию NdisMDirectOidRequestComplete с состоянием NDIS_STATUS_REQUEST_ABORTED.

Если обработка запроса по-прежнему не завершена в промежуточном драйвере и запрос был распространен на базовый драйвер, промежуточный драйвер вызываетФункция NdisCancelDirectOidRequest с параметром OidRequest, равным значению, отправленного базовому драйверу.

NDIS вызывает MiniportCancelDirectOidRequest по адресу IRQL <= DISPATCH_LEVEL.

Примеры

Чтобы определить функцию MiniportCancelDirectOidRequest , необходимо сначала предоставить объявление функции, определяющее тип определяемой функции. Windows предоставляет набор типов функций для драйверов. Объявление функции с помощью типов функций помогает анализу кода для драйверов, средству проверки статических драйверов (SDV) и другим средствам проверки находить ошибки, и это требование для написания драйверов для операционной системы Windows.

Например, чтобы определить функцию MiniportCancelDirectOidRequest с именем MyCancelDirectOidRequest, используйте тип MINIPORT_CANCEL_DIRECT_OID_REQUEST , как показано в следующем примере кода:

MINIPORT_CANCEL_DIRECT_OID_REQUEST MyCancelDirectOidRequest;

Затем реализуйте функцию следующим образом:

_Use_decl_annotations_
VOID
 MyCancelDirectOidRequest(
    NDIS_HANDLE  MiniportAdapterContext,
    PVOID  RequestId
    )
  {...}

Тип функции MINIPORT_CANCEL_DIRECT_OID_REQUEST определен в файле заголовка Ndis.h. Чтобы более точно определить ошибки при запуске средств анализа кода, не забудьте добавить заметку Use_decl_annotations в определение функции. Заметка Use_decl_annotations гарантирует использование заметок, которые применяются к типу функции MINIPORT_CANCEL_DIRECT_OID_REQUEST в файле заголовка. Дополнительные сведения о требованиях к объявлениям функций см. в статье Объявление функций с помощью типов ролей функций для драйверов NDIS.

Сведения о Use_decl_annotations см. в статье Поведение функции с заметками.

Требования

Требование Значение
Минимальная версия клиента Поддерживается в NDIS 6.1 и более поздних версиях.
Целевая платформа Windows
Header ndis.h (включая Ndis.h)
IRQL <= DISPATCH_LEVEL

См. также раздел

MiniportDirectOidRequest

MiniportInitializeEx

NDIS_OID_REQUEST

NdisCancelDirectOidRequest

NdisMDirectOidRequestComplete

NdisMRegisterMiniportDriver