EVT_NET_ADAPTER_RETURN_RX_BUFFER 콜백 함수(netadapter.h)
이 선택적 콜백 함수를 구현하여 이전에 수동 조각 할당 및 첨부 파일을 지정한 NET_FRAGMENT 수신 버퍼에서 정리를 수행합니다.
구문
EVT_NET_ADAPTER_RETURN_RX_BUFFER EvtNetAdapterReturnRxBuffer;
void EvtNetAdapterReturnRxBuffer(
[_In_] NETADAPTER Adapter,
[_In_] NET_FRAGMENT_RETURN_CONTEXT_HANDLE RxReturnContext
)
{...}
매개 변수
[_In_] Adapter
NetAdapterCreate에 대한 이전 호출에서 클라이언트가 만든 네트워크 어댑터 개체입니다.
[_In_] RxReturnContext
드라이버 할당 컨텍스트 공간 구조에 대한 포인터입니다.
반환 값
없음
설명
NET_ADAPTER_RX_CAPABILITIES 구조체의 적절한 멤버를 설정한 다음 NetAdapterSetDatapathCapabilities를 호출하여 이 콜백 함수의 구현을 등록합니다. 클라이언트 드라이버는 일반적으로 NetAdapterStart를 호출하기 전에 Net 어댑터를 시작할 때 NetAdapterSetDatapathCapabilities를 호출합니다.
이 콜백 함수는 net 어댑터 클라이언트 드라이버가 NET_ADAPTER_RX_CAPABILITIES_INIT_DRIVER_MANAGED 함수를 사용하여 NET_ADAPTER_RX_CAPABILITIES 구조를 초기화하지 않는 한 선택 사항입니다. 이 초기화 함수를 사용하면 드라이버는 운영 체제에 NET_FRAGMENT 수신 버퍼의 할당 및 첨부 파일을 수동으로 관리하고 있음을 운영 체제에 알립니다. 따라서 이 경우 시스템이 버퍼로 완료되면 운영 체제가 호출되도록 이 콜백 함수를 제공해야 합니다.
예제
이 콜백 함수에서 클라이언트 드라이버는 운영 체제가 이 수신 버퍼로 완료되었으므로 필요한 정리 또는 후속 작업을 수행할 수 있습니다. 다음 예제에서 반환 컨텍스트에는 표시된 패킷 수를 추적하는 멤버와 수신 처리 중에 lookaside 버퍼에 사용되는 메모리 개체가 포함됩니다. 명확성을 위해 오류 처리가 제외되었습니다.
VOID
MyReturnRxBuffer(
_In_ NETADAPTER Adapter,
_In_ NET_FRAGMENT_RETURN_CONTEXT_HANDLE RxReturnContext
)
{
UNREFERENCED_PARAMETER(Adapter);
RxReturnContext->IndicatedPackets--;
// Clean up the lookaside buffer if this is the last packet
if(RxReturnContext->IndicatedPackets == 0)
{
WdfObjectDelete(RxReturnContext->LookasideBufferMemory);
}
}
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 유니버설 |
최소 KMDF 버전 | 1.25 |
머리글 | netadapter.h(netadaptercx.h 포함) |
IRQL | <= DISPATCH_LEVEL |
추가 정보
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기