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 構造体へのポインター。 また、指定する必要がある NBL の数に関する詳細も含まれています。
備考
ミニポート ドライバーは、ミニポート アダプターの初期化中に NdisPoll コールバックを登録します。 ドライバーは、NdisRegisterPollを呼び出す前に、
NDIS は、ドライバーが NdisRequestPollを呼び出すときに、最初に
NdisPoll コールバックは、PASSIVE_LEVELとDISPATCH_LEVEL IRQL の両方で呼び出すことができます。 ドライバーは、どのレベルになるのかを想定しないでください。
ドライバーは、
受信表示の場合、ドライバーは次の手順を実行する必要があります。
- 指定できる Rx パケットの最大数までフェッチします。
- NBLs を初期化します。
- NDIS_POLL_RECEIVE_DATA 構造体によって提供される NBL キューに追加します (NdisPollPollData パラメーターの NDIS_POLL_DATA 構造体にあります)。
- コールバックを終了します。
送信完了の場合、ドライバーは次の操作を行う必要があります。
- 完了できる Tx パケットの最大数までフェッチします。
- NBLs を完了します。
- 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 |
関連項目
NdisSetPollNotification の
NdisRequestPoll の