Freigeben über


RxCeAllocateIrpWithMDL-Funktion (rxce.h)

RxCeAllocateIrpWithMDL ordnet ein IRP zu und ordnet es einer vorhandenen Speicherdeskriptorliste zu.

Syntax

PIRP RxCeAllocateIrpWithMDL(
  [in] IN CCHAR   StackSize,
  [in] IN BOOLEAN ChargeQuota,
  [in] IN PMDL    Buffer
);

Parameter

[in] StackSize

Die Stapelgröße, die für die IRP zugeordnet werden soll.

[in] ChargeQuota

Dieser Parameter sollte von Zwischentreibern auf FALSE festgelegt werden. Dies kann nur von Treibern der obersten Ebene auf TRUE festgelegt werden, die im Kontext des Threads aufgerufen werden, der die E/A-Anforderung entspringt, für die der Treiber eine andere IRP zuzuweisen hat.

[in] Buffer

Ein Zeiger auf den Puffer, der die Speicherdeskriptorliste enthält, die diesem IRP zugeordnet werden soll.

Rückgabewert

RxCeAllocateIrpWithMDL gibt einen Zeiger auf den IRP bei Erfolg oder einen NULL-Zeiger auf Fehler zurück.

Hinweise

Das Ziel von RxCeAllocateIrpWithMDL ist es, das Debuggen von IRPs zu vereinfachen, die für andere Komponenten ausgegeben werden und dann angehalten werden. IRPs, die mit RxCeAllocateIrpWithMDL ausgestellt wurden, werden in eine globale Liste von IRPs eingereiht, die von RDBSS verwaltet werden. Wenn also ein RX_CONTEXT auf einen Sendeabschluss wartet, ist es möglich, die globale Liste zu durchlaufen, um den IRP zu finden, der im Transport wartet.

Ein IRP, das einer zugeordneten Speicherdeskriptorliste zugeordnet ist, die RxCeAllocateIrpWithMDL zugeordnet ist, sollte freigegeben werden, wenn die IRP mithilfe von RxCeFreeIrp abgeschlossen ist.

IoAllocateIrp initialisiert automatisch die Member des IRP und fügt das IRP in eine globale Liste von IRPs ein, die von RDBSS verwaltet werden. Wenn arbeitsspeicher für die MDL, die dem IRP zugeordnet werden soll, nicht zugeordnet werden kann, wird der erstellte IRP freigegeben, und RxCeAllocateIrpWithMDL gibt einen NULL-Zeiger zurück, der auf einen Fehler hinweist.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Die RxCeAllocateIrpWithMDL-Routine ist nur unter Windows XP verfügbar.
Zielplattform Desktop
Kopfzeile rxce.h (include Rxce.h)
IRQL <= APC_LEVEL

Weitere Informationen

MDL

RxCeFreeIrp