Freigeben über


IoMakeAssociatedIrp-Funktion (ntddk.h)

Diese Routine ist für die Verwendung durch Dateisysteme und Dateisystemfiltertreiber reserviert. Die IoMakeAssociatedIrp- Routine weist einen IRP zu, der mit einem Master-IRP verknüpft wird, das an einen Treiber der höchsten Ebene gesendet wird, sodass der Aufrufer die ursprüngliche Anforderung aufteilen und zugeordnete IRPs an Treiber niedrigerer Ebene sendet.

Syntax

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

Parameter

[in] Irp

Zeiger auf den Master-IRP, der in die Dispatch-Routine einer höchsten Ebene eingegeben wurde.

[in] StackSize

Gibt die Anzahl der Stapelspeicherorte an, die für die zugeordnete IRP zugeordnet werden sollen. Der Wert muss mindestens dem StackSize- des Geräteobjekts des nächsten niedrigeren Treibers entsprechen, das zugeordnete IRP kann jedoch einen zusätzlichen Stapelspeicherort für den Aufrufer haben.

Rückgabewert

IoMakeAssociatedIrp- gibt einen Zeiger auf das zugeordnete IRP zurück oder gibt einen NULL- Zeiger zurück, wenn ein IRP nicht zugeordnet werden kann.

Bemerkungen

Nur ein Treiber der höchsten Ebene kann diese Routine aufrufen.

Der I/O-Manager schließt das Master-IRP automatisch ab, wenn niedrigere Treiber alle zugeordneten IRPs abgeschlossen haben, solange der Aufrufer seine IoCompletion- Routine in einem zugeordneten IRP nicht festgelegt und STATUS_MORE_PROCESSING_REQUIRED aus seiner IoCompletion- Routine zurückgegeben hat. Unter diesen Umständen muss der Aufrufer das Master-IRP explizit abschließen, wenn dieser Treiber festgestellt hat, dass alle zugeordneten IRPs abgeschlossen wurden.

Nur das Master-IRP ist einem Thread zugeordnet; zugeordnete IRPs sind nicht. Aus diesem Grund kann der E/A-Manager Cancel Routinen für zugeordnete IRPs nicht aufrufen, wenn ein Thread beendet wird. Wenn der Thread des Master-IRP beendet wird, ruft der E/A-Manager die Cancel Routine des Master-IRP auf. Die Cancel Routine ist dafür verantwortlich, alle zugehörigen IRPs nachzuverfolgen und IoCancelIrp- aufzurufen, um sie abzubrechen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Ab Windows 2000 verfügbar.
Zielplattform- Universal
Header- ntddk.h (include Ntddk.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- <= DISPATCH_LEVEL

Siehe auch

IRP-

IoAllocateIrp

IoBuildAsynchronousFsdRequest

IoBuildDeviceIoControlRequest

IoBuildSynchronousFsdRequest

IoCallDriver-

IoSetCompletionRoutine