NDIS_POLL回呼函式 (poll.h)
迷你埠驅動程式會實作 NdisPoll 回呼函式,NDIS 會輪詢接收指示並傳送完成。
語法
NDIS_POLL NdisPoll;
void() NdisPoll(
[_In_] void *Context,
[_Inout_] NDIS_POLL_DATA *PollData
)
{...}
參數
[_In_] Context
驅動程式在建立Poll物件時所提供的內容資訊的指標。
[_Inout_] PollData
驅動程式應該用來執行接收指示並傳送完成的 NDIS_POLL_DATA 結構的指標。 它也包含需要指出多少 NBL 的詳細數據。
備註
迷你埠驅動程式會在迷你埠配接器初始化期間註冊 NdisPoll 回呼。 驅動程式會在呼叫 NdisRegisterPoll 之前,於 NDIS_POLL_CHARACTERISTICS 結構的 PollHandler 參數上指定 NdisPoll 函式的進入點。
當驅動程式呼叫 NdisRequestPoll 時,NDIS 會先叫用 NdisPoll 回呼。 當驅動程式正在進行接收指示或傳輸完成時,NDIS 會持續叫用 NdisPoll 。
NdisPoll 回呼可以在 PASSIVE_LEVEL 和 DISPATCH_LEVEL IRQL 上叫用。 驅動程式不應該假設其會是哪一個層級。
驅動程式必須檢查NDIS_POLL_DATA結構的接收或傳輸參數,以取得可指出或完成的 NBL 數目上限。
針對接收指示,驅動程序應該:
- 擷取最多可以指出的 Rx 封包數目上限。
- 初始化 NBL。
- 將它們新增至NDIS_POLL_RECEIVE_DATA結構所提供的 NBL 佇列, (位於 NdisPollPollData 參數) 的NDIS_POLL_DATA結構中。
- 結束回呼。
針對傳輸完成,驅動程式應該:
- 擷取最多可以完成的 Tx 封包數目。
- 完成 NBL。
- 將它們新增至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 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應