共用方式為


IoMakeAssociatedIrp 函式 (ntddk.h)

此例程保留供文件系統和文件系統篩選驅動程式使用。 IoMakeAssociatedIrp 例程會配置並初始化 IRP,以與傳送至最高層級驅動程式的主要 IRP 相關聯,讓呼叫端能夠分割原始要求,並將相關聯的 IRP 傳送至較低層級的驅動程式。

語法

PIRP IoMakeAssociatedIrp(
  [in] PIRP  Irp,
  [in] CCHAR StackSize
);

參數

[in] Irp

輸入至最高層級驅動程式分派例程之主要 IRP 的指標。

[in] StackSize

指定要配置給相關聯 IRP 的堆疊位置數目。 值必須至少等於下一個較低驅動程式裝置物件的 StackSize,但相關聯的 IRP 可以有呼叫端的額外堆疊位置。

傳回值

IoMakeAssociatedIrp 會傳回相關聯 IRP 的指標,或在無法配置 IRP 時傳回 NULL 指標。

言論

只有最高層級的驅動程式可以呼叫此例程。

只要呼叫端未在相關聯的 IRP 中設定其 IoCompletion 例程,並從其 IoCompletion 例程傳回STATUS_MORE_PROCESSING_REQUIRED,I/O 管理員就會自動完成主要 IRP。 在這些情況下,呼叫端必須在該驅動程序判斷所有相關聯的 IRP 已完成時,明確完成主要 IRP。

只有主要 IRP 與線程相關聯;相關聯的 IRP 不是。 基於這個理由,I/O 管理員無法在線程結束時呼叫 取消 關聯 IRP 的例程。 當主要 IRP 的線程結束時,I/O 管理員會呼叫主要 IRP 的 Cancel 例程。 Cancel 例程負責追蹤所有相關聯的 IRP,並呼叫 IoCancelIrp 來取消它們。

要求

要求 價值
最低支援的用戶端 從 Windows 2000 開始提供。
目標平臺 普遍
標頭 ntddk.h (包括 Ntddk.h)
連結庫 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

另請參閱

IRP

IoAllocateIrp

IoBuildAsynchronousFsdRequest

IoBuildDeviceIoControlRequest

IoBuildSynchronousFsdRequest

IoCallDriver

IoSetCompletionRoutine