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

추가 정보

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