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

Важно!

Этот раздел является частью модели драйвера WDI, выпущенной в Windows 10. Модель драйвера WDI находится в режиме обслуживания и получает только исправления с высоким приоритетом. WiFiCx — это модель драйвера Wi-Fi, выпущенная в Windows 11. Мы рекомендуем использовать WiFiCx, чтобы воспользоваться преимуществами новейших функций.

Функция-обработчик MiniportWdiRxGetMpdus возвращает цепочку NET_BUFFER_LIST . Каждый NET_BUFFER_LIST представляет один MPDU.

Это обработчик мини-порта WDI внутри NDIS_MINIPORT_WDI_DATA_HANDLERS.

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

Синтаксис

MINIPORT_WDI_RX_GET_MPDUS MiniportWdiRxGetMpdus;

void MiniportWdiRxGetMpdus(
  [in]  TAL_TXRX_HANDLE MiniportTalTxRxContext,
  [in]  WDI_PEER_ID PeerId,
  [in]  WDI_EXTENDED_TID ExTid,
  [out] PNET_BUFFER_LIST *ppNBL
)
{...}

Параметры

[in] MiniportTalTxRxContext

Дескриптор устройства TAL, возвращенный минипортом IHV в MiniportWdiTalTxRxInitialize.

[in] PeerId

Идентификатор однорангового узла.

[in] ExTid

Расширенный TID.

[out] ppNBL

Указатель на указатель на цепочку NET_BUFFER_LIST из мини-порта IHV.

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

None

Remarks

Если PeerId и ExTid не являются подстановочными знаками (например, PeerId не равен 0xFFFF, ExTid не равен 31), все mpDU в цепочке имеют один и тот же идентификатор однорангового узла и TID (в этом случае TID является допустимым 802.11 TID).

Каждое NET_BUFFER_LIST указывает на NET_BUFFER структуры. Каждая структура NET_BUFFER представляет один MSDU.

Если в MPDU есть фрагмент MSDU в качестве полезных данных, а дефрагментация не разгружается в target/TAL (или включен режим FIPS, реализованный узлом), соответствующий NET_BUFFER_LIST имеет один NET_BUFFER, описывающий фрагмент MSDU.

Смещение данных каждого NET_BUFFER должно быть задано в начале заголовка MAC.

Примеры

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

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

MINIPORT_WDI_RX_GET_MPDUS MyRxGetMpdus;

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

_Use_decl_annotations_
VOID
 MyRxGetMpdus(
    TAL_TXRX_HANDLE MiniportTalTxRxContext,
    WDI_PEER_ID PeerId,
    WDI_EXTENDED_TID ExTid,
    PNET_BUFFER_LIST *ppNBL
    )
  {...}

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

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

Требования

Требование Значение
Минимальная версия клиента Windows 10
Минимальная версия сервера Windows Server 2016
Целевая платформа Windows
Header dot11wdi.h

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

NDIS_MINIPORT_WDI_DATA_HANDLERS

NET_BUFFER

NET_BUFFER_LIST

TAL_TXRX_HANDLE

Путь WDI RX

WDI_EXTENDED_TID

WDI_PEER_ID