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)

Consulte también

WdfMemoryCreate

WdfMemoryCreatePreallocated

WdfObjectContextGetObject