InsertHeadList 関数 (wdm.h)
InsertHeadList ルーチンは、LIST_ENTRY構造体の二重にリンクされたリストの先頭にエントリを挿入します。
構文
void InsertHeadList(
[in, out] PLIST_ENTRY ListHead,
[in, out] __drv_aliasesMem PLIST_ENTRY Entry
);
パラメーター
[in, out] ListHead
リストの先頭を表す LIST_ENTRY 構造体へのポインター。
[in, out] Entry
リストに挿入するエントリを表す LIST_ENTRY 構造体へのポインター。
戻り値
なし
解説
InsertHeadList は、ListHead-Flink> を更新して Entry をポイントします。 Entry-Flink> を更新して、リスト内の古い最初のエントリをポイントし、Entry-Blink> を ListHead に設定します。 元の最初のエントリの Blink フィールドも、Entry をポイントするように更新 されます。
二重リンク リストを実装するときにこのルーチンを使用する方法については、「Singly および Do2ly Linked Lists」を参照してください。
InsertHeadList の呼び出し元は、任意の IRQL で実行できます。 IRQL >= DISPATCH_LEVEL で InsertHeadList が呼び出される場合、ListHead のストレージとリスト エントリは常駐している必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 以降で使用できます。 |
対象プラットフォーム | デスクトップ |
Header | wdm.h (Wdm.h、Ntddk.h、Ntifs.h、Wudfwdm.h を含む) |
IRQL | 任意のレベル (「解説」セクションを参照) |
DDI コンプライアンス規則 | IoAllocateFree(wdm)、 IoReuseIrp(wdm)、 MarkingQueuedIrps(wdm)、 RemoveLockCheck(wdm)、 RemoveLockForward(wdm)、 RemoveLockForward2(wdm)、 RemoveLockForwardDeviceControl(wdm)、 RemoveLockForwardDeviceControl2(wdm)、 RemoveLockForwardDeviceControlInternal(wdm)、 RemoveLockForwardDeviceControlInternal2(wdm)、 RemoveLockForwardRead(wdm)、 RemoveLockForwardRead2(wdm)、 RemoveLockForwardWrite(wdm)、 RemoveLockForwardWrite2(wdm)、 RemoveLockRelease2(wdm)、 RemoveLockReleaseCleanup(wdm)、 RemoveLockReleaseClose(wdm)、 RemoveLockReleaseCreate(wdm)、 RemoveLockReleaseDeviceControl(wdm)、 RemoveLockReleaseInternalDeviceControl(wdm)、 RemoveLockReleasePower(wdm)、 RemoveLockReleaseRead(wdm)、 RemoveLockReleaseShutdownt(wdm)、 RemoveLockReleaseSystemControl(wdm)、 RemoveLockReleaseWrite(wdm) |