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)

Vedi anche

WdfMemoryCreate

WdfMemoryCreatePreallocated

WdfObjectContextGetObject