Función RxCeAllocateIrpWithMDL (rxce.h)
RxCeAllocateIrpWithMDL asigna un IRP y lo asocia a una lista de descriptores de memoria existente.
Sintaxis
PIRP RxCeAllocateIrpWithMDL(
[in] IN CCHAR StackSize,
[in] IN BOOLEAN ChargeQuota,
[in] IN PMDL Buffer
);
Parámetros
[in] StackSize
Tamaño de pila que se va a asignar al IRP.
[in] ChargeQuota
Este parámetro debe establecerse en FALSE mediante controladores intermedios. Esto solo se puede establecer en TRUE mediante controladores de nivel superior a los que se llama en el contexto del subproceso que origina la solicitud de E/S para la que el controlador asigna otro IRP.
[in] Buffer
Puntero al búfer que contiene la lista de descriptores de memoria que se va a asociar a este IRP.
Valor devuelto
RxCeAllocateIrpWithMDL devuelve un puntero al IRP si se ejecuta correctamente o un puntero NULL en caso de error.
Comentarios
El objetivo de RxCeAllocateIrpWithMDL es permitir una depuración más sencilla de los IRP que se emiten a otros componentes y, a continuación, se detiene. Los IRP emitidos mediante RxCeAllocateIrpWithMDL se ponen en cola en una lista global de IRP mantenidas por RDBSS. Por lo tanto, cuando un RX_CONTEXT está esperando una finalización de envío, es posible recorrer la lista global para encontrar el IRP que está esperando en el transporte.
Se debe liberar un IRP asignado con una lista de descriptores de memoria asociada asignada con RxCeAllocateIrpWithMDL cuando el IRP se completa con RxCeFreeIrp.
IoAllocateIrp inicializa automáticamente los miembros del IRP e inserta el IRP en una lista global de IRP mantenidas por RDBSS. Si no se puede asignar memoria para que la MDL esté asociada al IRP, el IRP que se creó se libera y RxCeAllocateIrpWithMDL devuelve un puntero NULL que indica un error.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | La rutina RxCeAllocateIrpWithMDL solo está disponible en Windows XP. |
Plataforma de destino | Escritorio |
Encabezado | rxce.h (incluir Rxce.h) |
IRQL | <= APC_LEVEL |