Función WdfRequestRetrieveUnsafeUserInputBuffer (wdfrequest.h)
[Solo se aplica a KMDF]
El método WdfRequestRetrieveUnsafeUserInputBuffer recupera el búfer de entrada de una solicitud de E/S, si la técnica de la solicitud para acceder a los búferes de datos no es ni búfer nide E/S directa.
Sintaxis
NTSTATUS WdfRequestRetrieveUnsafeUserInputBuffer(
[in] WDFREQUEST Request,
[in] size_t MinimumRequiredLength,
[out] PVOID *InputBuffer,
[out, optional] size_t *Length
);
Parámetros
[in] Request
Identificador de un objeto de solicitud de marco.
[in] MinimumRequiredLength
Tamaño mínimo del búfer, en bytes, que el controlador debe procesar la solicitud de E/S.
[out] InputBuffer
Puntero a una ubicación que recibe la dirección del búfer.
[out, optional] Length
Puntero a una ubicación que recibe el tamaño del búfer, en bytes. Este parámetro es opcional y se puede NULL.
Valor devuelto
WdfRequestRetrieveUnsafeUserInputBuffer devuelve STATUS_SUCCESS si la operación se realiza correctamente. De lo contrario, este método podría devolver uno de los siguientes valores:
Código devuelto | Descripción |
---|---|
|
Un parámetro de entrada no es válido. |
|
Este valor se devuelve si se produce una de las siguientes acciones:
|
|
El parámetro MinimumRequiredLength especifica un tamaño de búfer mayor que el tamaño real del búfer. |
Este método también puede devolver otros valores de NTSTATUS.
Se produce una comprobación de errores si el controlador proporciona un identificador de objeto no válido.
Observaciones
Se debe llamar al método WdfRequestRetrieveUnsafeUserInputBuffer desde una función de devolución de llamada EvtIoInCallerContext. Después de llamar a WdfRequestRetrieveUnsafeUserInputBuffer, el controlador debe llamar a WdfRequestProbeAndLockUserBufferForRead.
El controlador puede llamar a WdfRequestRetrieveUnsafeUserInputBuffer si el código de control de E/S de una solicitud es IRP_MJ_WRITE o IRP_MJ_DEVICE_CONTROL.
El controlador puede acceder al búfer recuperado hasta que complete la solicitud de E/S que representa el parámetro request de.
Para obtener más información sobre WdfRequestRetrieveUnsafeUserInputBuffer, vea Acceder a búferes de datos en controladores de Framework-Based.
Ejemplos
Para obtener un ejemplo de código que usa WdfRequestRetrieveUnsafeUserInputBuffer, vea WdfRequestProbeAndLockUserBufferForRead.
Requisitos
Requisito | Valor |
---|---|
de la plataforma de destino de | Universal |
versión mínima de KMDF | 1.0 |
encabezado de | wdfrequest.h (incluya Wdf.h) |
biblioteca de | Wdf01000.sys (consulte Control de versiones de la biblioteca de marcos). |
irQL | PASSIVE_LEVEL |
reglas de cumplimiento de DDI | BufAfterReqCompletedIntIoctl(kmdf), BufAfterReqCompletedIntIoctlA(kmdf), BufAfterReqCompletedIoctl(kmdf), BufAfterReqCompletedIoctlA(kmdf), BufAfterReqCompletedRead(kmdf), BufAfterReqCompletedWrite(kmdf ), BufAfterReqCompletedWriteA(kmdf), DriverCreate(kmdf), InputBufferAPI(kmdf), InvalidReqaccess(kmdf), InvalidReqAccessLocal(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |