NDIS_WDI_RX_INORDER_DATA_IND 콜백 함수(dot11wdi.h)
중요
이 항목은 Windows 10 릴리스된 WDI 드라이버 모델의 일부입니다. WDI 드라이버 모델은 유지 관리 모드이며 높은 우선 순위 수정만 받습니다. WiFiCx는 Windows 11 릴리스된 Wi-Fi 드라이버 모델입니다. 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
MiniportWdiTalTxRxInitialize의 IHV 미니포트에 전달된 NdisMiniportDataPathHandle입니다.
[in] IndicationLevel
RX 표시 수준을 지정하는 WDI_RX_INDICATION_LEVEL 열거형 값입니다.
[in] PeerId
피어 ID입니다.
[in] ExTid
확장된 TID입니다.
[in] pRxThrottleParams
NDIS_RECEIVE_THROTTLE_PARAMETERS 구조체에 대한 포인터입니다.
[out] pWifiStatus
NdisWdiRxInorderDataIndication에 대한 WDI의 상태입니다. 자세한 내용은 설명 섹션을 참조하세요.
반환 값
없음
설명
RxEngine은 이 표시가 DPC의 첫 번째 데이터 표시 NdisWdiRxInorderDataIndication)인 경우 WDI_RX_INDICATION_DISPATCH_FIRST_OF_DPC 사용합니다. 후속 데이터 표시는 WDI_RX_INDICATION_DISPATCH_GENERAL 사용합니다. 수동 수준에서 표시가 이루어지는 경우 RxEngine은 WDI_RX_INDICATION_PASSIVE 사용해야 합니다. MiniportWdiRxResume 컨텍스트에서 만들어진 표시는 WDI_RX_INDICATION_FROM_RX_RESUME_FRAMES 사용해야 합니다. 이 매개 변수는 DPC의 수명을 제한하는 데 필요한 RxMgr 정보를 제공합니다.
WDI_RX_INDICATION_FLAG_RESOURCES 다른 열거형 값과 비트 단위로 ORed하여 RxMgr이 데이터 표시에 NDIS_RECEIVE_FLAG_RESOURCES 플래그를 설정하도록 할 수 있습니다.
RxMgr은 받은 데이터를 끌어오기 위한 MiniportWdiRxGetMpdus 요청을 발급합니다.
대상이 RX 프레임 분류를 수행할 수 없고 다른 PeerID/TID 쌍의 RX 프레임에 대해 별도의 표시를 사용하는 경우 PeerID는 와일드카드(0xFFFF)로 설정되고 TID는 WDI_EXT_TID_UNKNOWN 설정됩니다.
대상/TAL이 버퍼 관리의 순서를 다시 지정하는 데 전적인 책임을 지는 경우 모든 삭제 작업도 수행합니다. MPDU 상태 필요하지 않습니다.
PNDIS_RECEIVE_THROTTLE_PARAMETERS NDIS에 등록된 인터럽트에 대해 NDIS에 의해 전달되는 ReceiveThrottleParameters를 가리킵니다. 이 작업은 WDI_RX_INDICATION_DISPATCH_FIRST_OF_DPC 경우에만 설정해야 합니다. 이 매개 변수는 무시되므로 다른 모든 데이터 표시는 NULL을 통과해야 합니다.
RxMgr이 WDI_STATUS 성공으로 설정하는 경우 RxEngine은 동일한 DPC의 컨텍스트에서 더 많은 데이터 표시를 만들 수 있습니다. RxMgr이 WDI_STATUS 일시 중지하도록 설정하는 경우 RxMgr이 MiniportWdiRxResume 을 발급하고 가능한 한 빨리 디스패치 수준을 종료할 때까지 RxEngine에서 데이터 표시를 만들지 않아야 합니다.
RxEngine은 일시 중지된 상태에서 들어오는 데이터를 처리하는 방법을 선택할 수 있습니다. 가능하면 데이터를 버퍼링하기만 하면 됩니다. 데이터 삭제도 허용됩니다.
RxMgr은 PNDIS_RECEIVE_THROTTLE_PARAMETERS 지정된 제한에 대해 NDIS에 표시된 프레임 수를 추적합니다. 또한 RxMgr은 디스패치에 소요된 시간을 추적합니다. 제한에 도달하면 RxMgr은 NDIS_STATUS_PAUSED 반환합니다. RxEngine은 가능한 한 빨리 DPC를 반환/종료해야 하며 RxMgr이 MiniportWdiRxResume을 호출할 때까지 더 이상 NET_BUFFER_LIST 구조(NdisWdiRxInorderDataIndication을 통해)를 나타내서는 안 됩니다. RxMgr에 제공되고(MiniportWdiRxGetMpdus를 통해) 아직 표시되지 않은 모든 NET_BUFFER_LIST 구조체는 DPC에서 너무 많은 시간을 소비하지 않도록 다른 컨텍스트에서 NDIS까지 표시됩니다. 해당 백로그가 지워지면 RxMgr은 MiniportWdiRxResume를 호출하여 RxEngine을 일시 중지합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 10 |
지원되는 최소 서버 | Windows Server 2016 |
대상 플랫폼 | Windows |
헤더 | dot11wdi.h |