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


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

Важно!

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

Функция обратного вызова NdisWdiRxInorderDataIndication информирует RxMgr о наличии списка указанных кадров RX в правильном порядке.

Это обратный вызов внутри NDIS_WDI_DATA_API.

Синтаксис

NDIS_WDI_RX_INORDER_DATA_IND NdisWdiRxInorderDataInd;

void NdisWdiRxInorderDataInd(
  [in]  NDIS_HANDLE NdisMiniportDataPathHandle,
  [in]  WDI_RX_INDICATION_LEVEL IndicationLevel,
  [in]  WDI_PEER_ID PeerId,
  [in]  WDI_EXTENDED_TID ExTid,
  [in]  PNDIS_RECEIVE_THROTTLE_PARAMETERS pRxThrottleParams,
  [out] NDIS_STATUS *pWifiStatus
)
{...}

Параметры

[in] NdisMiniportDataPathHandle

NdisMiniportDataPathHandle, переданный в минипорт IHV в MiniportWdiTalTxRxInitialize.

[in] IndicationLevel

Значение перечисления WDI_RX_INDICATION_LEVEL , указывающее уровень указания RX.

[in] PeerId

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

[in] ExTid

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

[in] pRxThrottleParams

Указатель на структуру NDIS_RECEIVE_THROTTLE_PARAMETERS .

[out] pWifiStatus

Состояние из WDI для NdisWdiRxInorderDataIndication. Дополнительные сведения см. в разделе Примечания .

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

None

Remarks

RxEngine использует WDI_RX_INDICATION_DISPATCH_FIRST_OF_DPC, если это первое указание данных NdisWdiRxInorderDataIndication) DPC. Последующие указания данных используют WDI_RX_INDICATION_DISPATCH_GENERAL. Если указания выполняются на пассивном уровне, RxEngine должен использовать WDI_RX_INDICATION_PASSIVE. Указания, сделанные в контексте MiniportWdiRxResume, должны использовать WDI_RX_INDICATION_FROM_RX_RESUME_FRAMES. Этот параметр предоставляет сведения RxMgr, необходимые для ограничения времени существования DPC.

WDI_RX_INDICATION_FLAG_RESOURCES может быть побитовой oRed с другими значениями перечисления, чтобы RxMgr устанавливал флаги NDIS_RECEIVE_FLAG_RESOURCES в указании данных.

RxMgr отправляет запросы MiniportWdiRxGetMpdus для извлечения полученных данных.

Если целевой объект не поддерживает классификацию кадров RX и использует отдельные указания для кадров RX из разных пар PeerID/TID, для параметра PeerID устанавливается подстановочный знак (0xFFFF), а tiD — значение WDI_EXT_TID_UNKNOWN.

В случае, когда целевой объект или TAL берет на себя полную ответственность за изменение порядка управления буфером, он также выполняет все действия по удалению. Состояние MPDU не требуется.

PNDIS_RECEIVE_THROTTLE_PARAMETERS указывает на ReceiveThrottleParameters, который передается NDIS для прерываний, зарегистрированных в NDIS. Это необходимо задать только для WDI_RX_INDICATION_DISPATCH_FIRST_OF_DPC. Все остальные указания данных должны передавать значение NULL, так как этот параметр игнорируется.

Если RxMgr устанавливает WDI_STATUS на успешное выполнение, RxEngine может создать дополнительные указания данных в контексте того же DPC. Если RxMgr задает приостановку WDI_STATUS, RxEngine не должен создавать указания данных, пока RxMgr не выпустит miniportWdiRxResume и не должен выйти из уровня диспетчеризации как можно скорее.

RxEngine может выбрать способ обработки входящих данных во время приостановки. По возможности он должен просто буферистику данных. Также допускается удаление данных.

RxMgr отслеживает количество кадров, указанных в NDIS, в соответствии с ограничением, указанным в PNDIS_RECEIVE_THROTTLE_PARAMETERS. RxMgr также отслеживает время, затраченное на отправку. При достижении ограничений RxMgr возвращает NDIS_STATUS_PAUSED. RxEngine должен возвращать или выходить из DPC как можно скорее, и не должен указывать больше NET_BUFFER_LIST структур (через NdisWdiRxInorderDataIndication), пока RxMgr не вызовет MiniportWdiRxResume. Любые NET_BUFFER_LIST структуры, которые предоставляются RxMgr (через MiniportWdiRxGetMpdus) и еще не указаны, указываются до NDIS в другом контексте, чтобы избежать слишком много времени на DPC. После очистки невыполненной работы RxMgr отменяет RxEngine, вызывая MiniportWdiRxResume.

Требования

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

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

MiniportWdiRxGetMpdus

MiniportWdiRxResume

NDIS_RECEIVE_THROTTLE_PARAMETERS

NDIS_WDI_DATA_API

NET_BUFFER_LIST

Путь WDI RX

WDI_EXTENDED_TID

WDI_PEER_ID

WDI_RX_INDICATION_LEVEL