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 no 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 no 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 uma lista de quadros RX especificados na ordem correta está presente.
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 valor de enumeração WDI_RX_INDICATION_LEVEL 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 de retorno
Nenhum
Observações
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 as indicações forem feitas 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 do 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 NDIS_RECEIVE_FLAG_RESOURCES sinalizadores na indicação de dados.
O RxMgr emite solicitações de 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 caractere curinga (0xFFFF) e o TID será definido como WDI_EXT_TID_UNKNOWN.
No caso em que o destino/TAL assume total responsabilidade pelo gerenciamento de buffer de reordenação, ele também executa todas as ações de descarte. Nenhum status de MPDU é necessário.
PNDIS_RECEIVE_THROTTLE_PARAMETERS aponta para o 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 bem-sucedido, 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 os dados de entrada durante a pausa. Se possível, ele deve apenas armazenar os dados em buffer. Remover 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 controla 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 assim que possível e não deve indicar mais estruturas de NET_BUFFER_LIST (por meio NdisWdiRxInorderDataIndication ) até que o RxMgr chame MiniportWdiRxResume. Todas as estruturas NET_BUFFER_LIST que são fornecidas ao RxMgr (via MiniportWdiRxGetMpdus) e ainda não foram indicadas para NDIS em um contexto diferente para evitar passar muito tempo no DPC. Depois que o backlog tiver sido limpo, o RxMgr removerá o RxEngine invocando MiniportWdiRxResume.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows 10 |
servidor com suporte mínimo | Windows Server 2016 |
da Plataforma de Destino | Windows |
cabeçalho | dot11wdi.h |