NDIS_WDI_RX_INORDER_DATA_IND função de retorno de chamada (dot11wdi.h)

Importante

Este tópico faz parte do modelo de driver WDI lançado em Windows 10. O modelo de driver WDI está no modo de manutenção e receberá apenas correções de alta prioridade. WiFiCx é o modelo de driver Wi-Fi lançado em Windows 11. Recomendamos que você use o WiFiCx para aproveitar os recursos mais recentes.

A função de retorno de chamada NdisWdiRxInorderDataIndication informa ao RxMgr que há uma lista de quadros RX especificados na ordem correta.

Esse é um retorno de chamada dentro de NDIS_WDI_DATA_API.

Sintaxe

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
)
{...}

Parâmetros

[in] NdisMiniportDataPathHandle

O NdisMiniportDataPathHandle passou para o miniporto IHV em MiniportWdiTalTxRxInitialize.

[in] IndicationLevel

Um WDI_RX_INDICATION_LEVEL valor de enumeração que especifica o nível de indicação RX.

[in] PeerId

A ID do par.

[in] ExTid

O TID estendido.

[in] pRxThrottleParams

Ponteiro para uma estrutura de NDIS_RECEIVE_THROTTLE_PARAMETERS .

[out] pWifiStatus

Status do WDI para o NdisWdiRxInorderDataIndication. Consulte a seção Comentários para obter mais informações.

Valor retornado

Nenhum

Comentários

O RxEngine usará WDI_RX_INDICATION_DISPATCH_FIRST_OF_DPC se essa indicação for a primeira indicação de dados NdisWdiRxInorderDataIndication) de um DPC. As indicações de dados subsequentes usam WDI_RX_INDICATION_DISPATCH_GENERAL. Se forem feitas indicações no nível passivo, o RxEngine deverá usar WDI_RX_INDICATION_PASSIVE. As indicações feitas no contexto de MiniportWdiRxResume devem usar WDI_RX_INDICATION_FROM_RX_RESUME_FRAMES. Esse parâmetro fornece as informações RxMgr necessárias para limitar o tempo de vida dos DPCs.

WDI_RX_INDICATION_FLAG_RESOURCES pode ser ORed bit a bit com os outros valores de enumeração para fazer com que o RxMgr defina sinalizadores NDIS_RECEIVE_FLAG_RESOURCES na indicação de dados.

O RxMgr emite solicitações MiniportWdiRxGetMpdus para efetuar pull dos dados recebidos.

Se o destino não for capaz de classificar quadros RX e usar indicações separadas para quadros RX de diferentes pares PeerID/TID, o PeerID será definido como um curinga (0xFFFF) e TID será definido como WDI_EXT_TID_UNKNOWN.

No caso em que o destino/TAL assume total responsabilidade pela reordenação do gerenciamento de buffers, ele também executa todas as ações de descarte. Nenhuma status mpdu é necessária.

PNDIS_RECEIVE_THROTTLE_PARAMETERS aponta para ReceiveThrottleParameters, que é passado pelo NDIS para interrupções registradas com NDIS. Isso só precisa ser definido para WDI_RX_INDICATION_DISPATCH_FIRST_OF_DPC. Todas as outras indicações de dados devem passar NULL, pois esse parâmetro é ignorado.

Se o RxMgr definir o WDI_STATUS como êxito, o RxEngine poderá criar mais indicações de dados no contexto do mesmo DPC. Se o RxMgr definir o WDI_STATUS para pausar, o RxEngine não deverá criar indicações de dados até que o RxMgr emita um MiniportWdiRxResume e saia do nível de expedição assim que possível.

O RxEngine pode escolher como lidar com dados de entrada enquanto está em pausa. Se possível, ele deve apenas armazenar os dados em buffer. Descartar dados também é aceitável.

O RxMgr rastreia o número de quadros indicados ao NDIS em relação ao limite especificado em PNDIS_RECEIVE_THROTTLE_PARAMETERS. O RxMgr também rastreia o tempo gasto na expedição. Quando os limites são atingidos, o RxMgr retorna NDIS_STATUS_PAUSED. O RxEngine deve retornar/sair do DPC o mais rápido possível e não deve indicar mais estruturas NET_BUFFER_LIST (por meio de NdisWdiRxInorderDataIndication) até que o RxMgr chame MiniportWdiRxResume. Todas as estruturas NET_BUFFER_LIST que são fornecidas ao RxMgr (via MiniportWdiRxGetMpdus) e que ainda não foram indicadas são indicadas até o NDIS em um contexto diferente para evitar passar muito tempo no DPC. Depois que essa lista de pendências tiver sido desmarcada, o RxMgr removerá o RxEngine invocando MiniportWdiRxResume.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 10
Servidor mínimo com suporte Windows Server 2016
Plataforma de Destino Windows
Cabeçalho dot11wdi.h

Confira também

MiniportWdiRxGetMpdus

MiniportWdiRxResume

NDIS_RECEIVE_THROTTLE_PARAMETERS

NDIS_WDI_DATA_API

NET_BUFFER_LIST

Caminho do WDI RX

WDI_EXTENDED_TID

WDI_PEER_ID

WDI_RX_INDICATION_LEVEL