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 |