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) |