Función WdfMemoryGetBuffer (wdfmemory.h)
[Se aplica a KMDF y UMDF]
El método WdfMemoryGetBuffer devuelve un puntero al búfer asociado a un objeto de memoria especificado.
Sintaxis
PVOID WdfMemoryGetBuffer(
[in] WDFMEMORY Memory,
[out, optional] size_t *BufferSize
);
Parámetros
[in] Memory
Identificador de un objeto de memoria de marco.
[out, optional] BufferSize
Puntero a una ubicación que recibe el tamaño, en bytes, del búfer de memoria. Este parámetro es opcional y puede ser NULL.
Valor devuelto
WdfMemoryGetBuffer devuelve un puntero al búfer de memoria.
Se produce una comprobación de errores si el controlador proporciona un identificador de objeto no válido.
Comentarios
Para obtener más información sobre los objetos de memoria del marco, consulte Uso de búferes de memoria.
Se puede llamar a WdfMemoryGetBuffer en cualquier IRQL.
Ejemplos
El ejemplo de código siguiente se basa en la función de devolución de llamada EvtUsbTargetPipeReadComplete en el controlador de ejemplo de kmdf_fx2 . En el ejemplo se obtiene el búfer asociado al objeto de memoria que recibe la función de devolución de llamada. En el ejemplo se copian los datos del búfer en el espacio de contexto del objeto de dispositivo que el controlador ha definido.
VOID
OsrFxEvtUsbInterruptPipeReadComplete(
WDFUSBPIPE Pipe,
WDFMEMORY Buffer,
size_t NumBytesTransferred,
WDFCONTEXT Context
)
{
PUCHAR switchState = NULL;
WDFDEVICE device;
PDEVICE_CONTEXT pDeviceContext = Context;
device = WdfObjectContextGetObject(pDeviceContext);
switchState = WdfMemoryGetBuffer(Buffer, NULL);
pDeviceContext->CurrentSwitchState = *switchState;
}
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Universal |
Versión mínima de KMDF | 1.0 |
Versión mínima de UMDF | 2.0 |
Encabezado | wdfmemory.h (incluya Wdf.h) |
Library | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | Cualquier nivel |
Reglas de cumplimiento de DDI | DriverCreate(kmdf), MemAfterReqCompletedIntIoctlA(kmdf), MemAfterReqCompletedIoctlA(kmdf), MemAfterReqCompletedReadA(kmdf), MemAfterReqCompletedWriteA(kmdf) |