Freigeben über


IoMakeAssociatedIrp-Funktion (ntddk.h)

Diese Routine ist für die Verwendung durch Dateisysteme und Dateisystemfiltertreiber reserviert. Die IoMakeAssociatedIrp-Routine ordnet und initialisiert eine IRP, die einer master IRP zugeordnet wird, die an einen Treiber der höchsten Ebene gesendet wird, sodass der Aufrufer die ursprüngliche Anforderung aufteilen und zugehörige IRPs an Treiber auf niedrigerer Ebene senden kann.

Syntax

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

Parameter

[in] Irp

Zeiger auf die master IRP, die für die Dispatch-Routine eines Treibers auf höchster Ebene eingegeben wurde.

[in] StackSize

Gibt die Anzahl der Stapelspeicherorte an, die für die zugeordnete IRP zugewiesen werden sollen. Der Wert muss mindestens gleich dem StackSize des Geräteobjekts des nächstniedrigen Treibers sein, aber die zugeordnete IRP kann einen zusätzlichen Stapelspeicherort für den Aufrufer aufweisen.

Rückgabewert

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

Hinweise

Nur ein Treiber der obersten Ebene kann diese Routine aufrufen.

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

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

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar ab Windows 2000.
Zielplattform Universell
Header ntddk.h (include Ntddk.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

Weitere Informationen

IRP

IoAllocateIrp

IoBuildAsynchronfsdRequest

IoBuildDeviceIoControlRequest

IoBuildSynchronousFsdRequest

IoCallDriver

IoSetCompletionRoutine