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 |