функция обратного вызова 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 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 |