NdisInitializeListHead マクロ (ndis.h)
NdisInitializeListHead 関数は、二重にリンクされたドライバーが管理するキューを初期化します。
構文
void NdisInitializeListHead(
[in] _ListHead
);
パラメーター
[in] _ListHead
インターロックされたキューまたはリストの先頭に対してドライバーによって割り当てられた非ページ ストレージへのポインター。
戻り値
なし
解説
NdisInitializeListHead は 、ミニポートInitializeEx 関数から、またはドライバーキューが内部的に要求する場合は、プロトコル ドライバーの DriverEntry ルーチンから呼び出すことができます。 ただし、ミニポート ドライバーは、NDIS ライブラリが要求とミニポート ドライバーに送信されたパケットをシリアル化するため、内部キューを設定することはほとんどありません。
内部キューを維持する NDIS ドライバーは、キューに登録されたエントリへのドライバー関数のアクセスを同期する役割を担います。 NdisInterlockedXxxリスト関数は、ドライバーがマルチプロセッサ コンピューターで実行されている場合でも、任意の時点でキューに登録されたエントリにアクセスできるドライバー関数が 1 つだけであることを確認します。これは、キューが呼び出し元が指定したスピン ロックによって保護されているためです。
インターロックされたキューの場合、ドライバーはスピン ロック用の非ページ ストレージも提供する必要があります。 スピン ロックへのポインターを NdisInterlockedXxxList 関数のいずれかに渡す前に、NdisAllocateSpinLock 関数を使用してスピン ロックを初期化する必要があります。
NdisInitializeListHead の呼び出し元は、任意の IRQL で実行できます。 IRQL >= DISPATCH_LEVELで NdisInitializeListHead が呼び出される場合、ListHead のストレージは常駐である必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista の NDIS 6.0 および NDIS 5.1 ドライバー (「NdisInitializeListHead (NDIS 5.1)」を参照) でサポートされています。 Windows XP の NDIS 5.1 ドライバー (NdisInitializeListHead (NDIS 5.1) を参照) でサポートされています。 |
対象プラットフォーム | デスクトップ |
Header | ndis.h (Ndis.h を含む) |
IRQL | 任意のレベル (「解説」セクションを参照) |