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 |