Funzione WdfMemoryGetBuffer (wdfmemory.h)
[Si applica a KMDF e UMDF]
Il metodo WdfMemoryGetBuffer restituisce un puntatore al buffer associato a un oggetto di memoria specificato.
Sintassi
PVOID WdfMemoryGetBuffer(
[in] WDFMEMORY Memory,
[out, optional] size_t *BufferSize
);
Parametri
[in] Memory
Handle per un oggetto memoria framework.
[out, optional] BufferSize
Puntatore a una posizione che riceve le dimensioni, in byte, del buffer di memoria. Questo parametro è facoltativo e può essere NULL.
Valore restituito
WdfMemoryGetBuffer restituisce un puntatore al buffer di memoria.
Un controllo di bug si verifica se il driver fornisce un handle di oggetti non valido.
Commenti
Per altre informazioni sugli oggetti di memoria del framework, vedere Uso dei buffer di memoria.
WdfMemoryGetBuffer può essere chiamato in qualsiasi IRQL.
Esempio
L'esempio di codice seguente si basa sulla funzione di callback EvtUsbTargetPipeReadComplete nel driver di esempio kmdf_fx2 . Nell'esempio viene ottenuto il buffer associato all'oggetto memory ricevuto dalla funzione di callback. Nell'esempio vengono copiati dati dal buffer nello spazio di contesto dell'oggetto dispositivo definito dal driver.
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;
}
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Versione KMDF minima | 1.0 |
Versione UMDF minima | 2,0 |
Intestazione | wdfmemory.h (include Wdf.h) |
Libreria | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | Qualsiasi livello |
Regole di conformità DDI | DriverCreate(kmdf), MemAfterReqCompletedIntIoctlA(kmdf), MemAfterReqCompletedIoctlA(kmdf), MemAfterReqCompletedReadA(kmdf), MemAfterReqCompletedWriteA(kmdf) |