Freigeben über


IoInitializeIrp-Funktion (wdm.h)

Die IoInitializeIrp-Routine initialisiert einen bestimmten IRP, der vom Aufrufer zugewiesen wurde.

Syntax

void IoInitializeIrp(
  [in, out] PIRP   Irp,
  [in]      USHORT PacketSize,
  [in]      CCHAR  StackSize
);

Parameter

[in, out] Irp

Zeiger auf den zu initialisierenden IRP.

[in] PacketSize

Gibt die Größe des IRP in Bytes an.

[in] StackSize

Gibt die Anzahl der Stapelspeicherorte im IRP an.

Rückgabewert

Keine

Bemerkungen

Treiber verwenden IoInitializeIrp , um IRPs zu initialisieren, die dem Treiber als roher Arbeitsspeicher zugeordnet sind. Verwenden Sie IoInitializeIrp nicht, um eine von IoAllocateIrp zugewiesene IRP zu initialisieren. IoAllocateIrp initialisiert automatisch die Mitglieder des IRP.

Treiber können IoInitializeIrp nur unter bestimmten Umständen zum erneuten Initialisieren eines IRP zur Wiederverwendung verwenden. Weitere Informationen finden Sie unter Wiederverwendung von IRPs .

Wenn der Treiber eine MDL mit dem zugewiesenen IRP verknüpft, ist der Treiber für die Freigabe der MDL verantwortlich, wenn die IRP abgeschlossen ist.

Ein Treiber auf mittlerer oder höchster Ebene kann auch IoBuildDeviceIoControlRequest, IoBuildAsynchronousFsdRequest oder IoBuildSynchronousFsdRequest aufrufen, um Anforderungen einzurichten, die an Treiber auf niedrigerer Ebene gesendet werden. Nur ein Treiber der höchsten Ebene kann IoMakeAssociatedIrp aufrufen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar ab Windows 2000.
Zielplattform Universell
Header wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL
DDI-Complianceregeln HwStorPortProhibitedDDIs(storport), IoReuseIrp(wdm)

Weitere Informationen

IRP

IoAllocateIrp

IoAllocateMdl

IoBuildPartialMdl

IoFreeIrp

IoFreeMdl

IoReuseIrp

IoSetNextIrpStackLocation

IoSizeOfIrp