Compartilhar via


Função WdfMemoryGetBuffer (wdfmemory.h)

[Aplica-se a KMDF e UMDF]

O método WdfMemoryGetBuffer retorna um ponteiro para o buffer associado a um objeto de memória especificado.

Sintaxe

PVOID WdfMemoryGetBuffer(
  [in]            WDFMEMORY Memory,
  [out, optional] size_t    *BufferSize
);

Parâmetros

[in] Memory

Um identificador para um objeto de memória de estrutura.

[out, optional] BufferSize

Um ponteiro para um local que recebe o tamanho, em bytes, do buffer de memória. Esse parâmetro é opcional e pode ser NULL.

Retornar valor

WdfMemoryGetBuffer retorna um ponteiro para o buffer de memória.

Um bug marcar ocorrerá se o driver fornecer um identificador de objeto inválido.

Comentários

Para obter mais informações sobre objetos de memória de estrutura, consulte Usando buffers de memória.

WdfMemoryGetBuffer pode ser chamado em qualquer IRQL.

Exemplos

O exemplo de código a seguir baseia-se na função de retorno de chamada EvtUsbTargetPipeReadComplete no driver de exemplo kmdf_fx2 . O exemplo obtém o buffer associado ao objeto de memória que a função de retorno de chamada recebe. O exemplo copia dados do buffer para o espaço de contexto do objeto do dispositivo que o driver definiu.

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 Valor
Plataforma de Destino Universal
Versão mínima do KMDF 1.0
Versão mínima do UMDF 2,0
Cabeçalho wdfmemory.h (inclua Wdf.h)
Biblioteca Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL Qualquer nível
Regras de conformidade da DDI DriverCreate(kmdf), MemAfterReqCompletedIntIoctlA(kmdf), MemAfterReqCompletedIoctlA(kmdf), MemAfterReqCompletedReadA(kmdf), MemAfterReqCompletedWriteA(kmdf)

Confira também

WdfMemoryCreate

WdfMemoryCreatePreallocated

WdfObjectContextGetObject