Freigeben über


IoInitializeIrp-Funktion (wdm.h)

Die IoInitializeIrp Routine initialisiert ein bestimmtes IRP, das vom Aufrufer zugewiesen wurde.

Syntax

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

Parameter

[in, out] Irp

Zeiger auf das zu initialisierende IRP.

[in] PacketSize

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

[in] StackSize

Gibt die Anzahl der Stapelpositionen im IRP an.

Rückgabewert

Nichts

Bemerkungen

Treiber verwenden IoInitializeIrp-, um IRPs zu initialisieren, die dem als unformatierten Speicher zugewiesenen Treiber zugeordnet sind. Verwenden Sie IoInitializeIrp- nicht, um ein von IoAllocateIrpzugeordnetes IRP zu initialisieren. IoAllocateIrp initialisiert automatisch die Mitglieder des IRP.

Treiber können IoInitializeIrp- verwenden, um ein IRP nur unter bestimmten Umständen wiederzuverwenden. Weitere Informationen finden Sie unter Reusing IRPs.

Wenn der Treiber eine MDL dem zugewiesenen IRP zuordnet, ist der Treiber dafür verantwortlich, die MDL freizugeben, wenn das 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 IoMakeAssociatedIrpaufrufen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Ab Windows 2000 verfügbar.
Zielplattform- Universal
Header- wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- <= DISPATCH_LEVEL
DDI-Complianceregeln HwStorPortProhibitedDIs(storport), IoReuseIrp(wdm)

Siehe auch

IRP-

IoAllocateIrp

IoAllocateMdl-

IoBuildPartialMdl-

IoFreeIrp-

IoFreeMdl-

IoReuseIrp

IoSetNextIrpStackLocation-

IoSizeOfIrp-