共用方式為


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

規格需求

需求
最低支援的用戶端 從 Windows 2000 開始提供。
目標平台 Universal
標頭 ntddk.h (包含 Ntddk.h)
程式庫 NtosKrnl.lib
Dll NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

另請參閱

IRP

IoAllocateIrp

IoBuildAsynchronousFsdRequest

IoBuildDeviceIoControlRequest

IoBuildSynchronousFsdRequest

IoCallDriver

IoSetCompletionRoutine