функция обратного вызова MINIPORT_CANCEL_SEND (ndis.h)
NDIS вызывает функцию MiniportCancelSend драйвера мини-порта , чтобы отменить передачу всех NET_BUFFER_LIST структур, помеченных указанным идентификатором отмены.
Синтаксис
MINIPORT_CANCEL_SEND MiniportCancelSend;
void MiniportCancelSend(
[in] NDIS_HANDLE MiniportAdapterContext,
[in] PVOID CancelId
)
{...}
Параметры
[in] MiniportAdapterContext
Дескриптор контекстной области, выделенной драйвером мини-порта в функции MiniportInitializeEx . Драйвер мини-порта использует эту область контекста для хранения сведений о состоянии адаптера.
[in] CancelId
Идентификатор отмены. Этот идентификатор указывает NET_BUFFER_LIST структуры, которые отменяются.
Возвращаемое значение
None
Remarks
Драйверы miniport и промежуточные драйверы, которые в очереди отправляют NET_BUFFER_LIST структурах, экспортируют функцию MiniportCancelSend . Функция MiniportCancelSend отменяет ожидающие передачи указанных NET_BUFFER_LIST структур.
Когда драйвер NDIS вызываетФункция NdisCancelSendNetBufferLists, NDIS вызывает функцию MiniportCancelSend соответствующего драйвера нижнего уровня для привязки. NDIS выполняет этот вызов, только если драйвер нижнего уровня экспортирует функцию MiniportCancelSend .
Функция MiniportCancelSend драйвера мини-порта выполняет следующие операции:
- Просматривает список структур NET_BUFFER_LIST в очереди для указанного адаптера и вызывает NDIS_GET_NET_BUFFER_LIST_CANCEL_ID макрос для получения идентификатора отмены для каждой структуры NET_BUFFER_LIST очереди. Драйвер мини-порта сравнивает идентификатор отмены, возвращаемый NDIS_GET_NET_BUFFER_LIST_CANCEL_ID, с идентификатором отмены, переданным NDIS в MiniportCancelSend.
- Удаляет из очереди отправки (отмена ссылок) все NET_BUFFER_LIST структуры, идентификаторы отмены которых соответствуют указанному идентификатору отмены.
- ВызываетФункция NdisMSendNetBufferListsComplete для всех несвязанных структур NET_BUFFER_LIST для возврата структур . Драйвер мини-порта задает в поле состояния структур NET_BUFFER_LIST значение NDIS_STATUS_SEND_ABORTED.
- Выполняет операции из предыдущего списка для функции MiniportCancelSend драйвера мини-порта .
- ВызываетФункция NdisCancelSendNetBufferLists, указывающая привязку, которая сопоставляется с адаптером NDIS, указанным в вызове MiniportCancelSend.
Например, чтобы определить функцию MiniportCancelSend с именем MyCancelSend, используйте тип MINIPORT_CANCEL_SEND , как показано в следующем примере кода:
MINIPORT_CANCEL_SEND MyCancelSend;
Затем реализуйте функцию следующим образом:
_Use_decl_annotations_
VOID
MyCancelSend(
NDIS_HANDLE MiniportAdapterContext,
PVOID CancelId
)
{...}
Тип функции MINIPORT_CANCEL_SEND определен в файле заголовка Ndis.h. Чтобы более точно определить ошибки при запуске средств анализа кода, не забудьте добавить заметку Use_decl_annotations в определение функции. Заметка Use_decl_annotations гарантирует использование заметок, которые применяются к типу функции MINIPORT_CANCEL_SEND в файле заголовка. Дополнительные сведения о требованиях к объявлениям функций см. в статье Объявление функций с помощью типов ролей функций для драйверов NDIS.
Сведения о Use_decl_annotations см. в статье Поведение функции с заметками.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Поддерживается в NDIS 6.0 и более поздних версиях. |
Целевая платформа | Windows |
Header | ndis.h (включая Ndis.h) |
IRQL | <= DISPATCH_LEVEL |