Funzione RxCeAllocateIrpWithMDL (rxce.h)
RxCeAllocateIrpWithMDL alloca un IRP e lo associa a un elenco di descrittori di memoria esistente.
Sintassi
PIRP RxCeAllocateIrpWithMDL(
[in] IN CCHAR StackSize,
[in] IN BOOLEAN ChargeQuota,
[in] IN PMDL Buffer
);
Parametri
[in] StackSize
Dimensioni dello stack da allocare per IRP.
[in] ChargeQuota
Questo parametro deve essere impostato su FALSE da driver intermedi. Può essere impostato su TRUE solo dai driver di livello più alto chiamati nel contesto del thread che ha origine la richiesta di I/O per cui il driver sta allocando un altro IRP.
[in] Buffer
Puntatore al buffer contenente l'elenco dei descrittori di memoria da associare a questo IRP.
Valore restituito
RxCeAllocateIrpWithMDL restituisce un puntatore all'IRP in caso di esito positivo o un puntatore NULL NULL in caso di errore.
Osservazioni
L'obiettivo di RxCeAllocateIrpWithMDL è consentire un debug più semplice dei runtime di integrazione rilasciati ad altri componenti e quindi bloccarsi. I runtime di integrazione rilasciati con RxCeAllocateIrpWithMDL vengono accodati a un elenco globale di runtime di integrazione gestiti da RDBSS. Pertanto, quando un RX_CONTEXT è in attesa di un completamento dell'invio, è possibile camminare l'elenco globale per trovare l'IRP in attesa nel trasporto.
Un IRP allocato con un elenco descrittore di memoria associato allocato con RxCeAllocateIrpWithMDL deve essere liberato quando l'IRP viene completato usando RxCeFreeIrp.
IoAllocateIrp inizializza automaticamente i membri di IRP e inserisce l'IRP in un elenco globale di runtime di integrazione gestito da RDBSS. Se non è possibile allocare memoria per il file MDL associato all'IRP, l'IRP creato viene liberato e RxCeAllocateIrpWithMDL restituisce un puntatore NULL che indica l'errore.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | La routine RxCeAllocateIrpWithMDL è disponibile solo in Windows XP. |
piattaforma di destinazione | Desktop |
intestazione | rxce.h (include Rxce.h) |
IRQL | <= APC_LEVEL |