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