NDIS_POLL 콜백 함수(poll.h)
미니포트 드라이버는 NDIS가 수신 표시를 폴링하고 완료를 보내는 NdisPoll 콜백 함수를 구현합니다.
구문
NDIS_POLL NdisPoll;
void() NdisPoll(
[_In_] void *Context,
[_Inout_] NDIS_POLL_DATA *PollData
)
{...}
매개 변수
[_In_] Context
드라이버가 Poll 개체를 만들 때 제공한 컨텍스트 정보에 대한 포인터입니다.
[_Inout_] PollData
드라이버가 수신 표시를 수행하고 완료를 보내는 데 사용해야 하는 NDIS_POLL_DATA 구조체에 대한 포인터입니다. 또한 표시해야 하는 NLL 수에 대한 세부 정보도 포함되어 있습니다.
설명
미니포트 드라이버는 미니포트 어댑터를 초기화하는 동안 NdisPoll 콜백을 등록합니다. 드라이버는 NdisRegisterPoll을 호출하기 전에 NDIS_POLL_CHARACTERISTICS 구조체의 PollHandler 매개 변수에서 NdisPoll 함수의 진입점을 지정합니다.
NDIS는 드라이버가 NdisRequestPoll을 호출할 때 먼저 NdisPoll 콜백을 호출합니다. NDIS는 드라이버가 수신 표시 또는 전송 완료를 진행하는 동안 NdisPoll 을 계속 호출합니다.
NdisPoll 콜백은 PASSIVE_LEVEL 및 DISPATCH_LEVEL IRQL 모두에서 호출될 수 있습니다. 드라이버는 어떤 수준이 될 것인지를 가정해서는 안 됩니다.
드라이버는 NDIS_POLL_DATA 구조체의 수신 또는 전송 매개 변수를 검사 표시하거나 완료할 수 있는 최대 NBL 수를 가져와야 합니다.
수신 표시의 경우 드라이버는 다음을 수행해야 합니다.
- 표시할 수 있는 최대 Rx 패킷 수까지 가져옵니다.
- NLL을 초기화합니다.
- NDIS_POLL_RECEIVE_DATA 구조에서 제공하는 NBL 큐에 추가합니다(NdisPollPollData 매개 변수의 NDIS_POLL_DATA 구조에 있음).
- 콜백을 종료합니다.
전송 완료의 경우 드라이버는 다음을 수행해야 합니다.
- 완료할 수 있는 최대 Tx 패킷 수까지 가져옵니다.
- NCL을 완료합니다.
- NDIS_POLL_TRANSMIT_DATA 구조에서 제공하는 NBL 큐에 추가합니다(NdisPollPollData 매개 변수의 NDIS_POLL_DATA 구조에 있음).
- 콜백을 종료합니다.
드라이버는 NdisPoll 함수를 종료하기 전에 Poll 개체의 인터럽트 사용을 설정해서는 안 됩니다. NDIS는 앞으로 진행이 이루어지지 않는다고 평가할 때까지 드라이버를 계속 폴링합니다. 이 시점에서 NDIS는 폴링을 중지하고 NdisSetPollNotification 콜백을 호출하여 드라이버에 인터럽트 다시 활성화를 요청합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 11 |
지원되는 최소 서버 | Windows Server 2022 |
머리글 | poll.h(ndis.h 포함) |
IRQL | <= DISPATCH_LEVEL |
추가 정보
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기