Freigeben über


WdfMemoryGetBuffer-Funktion (wdfmemory.h)

[Gilt für KMDF und UMDF]

Die WdfMemoryGetBuffer-Methode gibt einen Zeiger auf den Puffer zurück, der einem angegebenen Speicherobjekt zugeordnet ist.

Syntax

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

Parameter

[in] Memory

Ein Handle für ein Frameworkspeicherobjekt.

[out, optional] BufferSize

Ein Zeiger auf einen Speicherort, der die Größe des Speicherpuffers in Bytes empfängt. Dieser Parameter ist optional und kann NULL sein.

Rückgabewert

WdfMemoryGetBuffer gibt einen Zeiger auf den Speicherpuffer zurück.

Eine Fehlerüberprüfung tritt auf, wenn der Treiber ein ungültiges Objekthandle bereitstellt.

Hinweise

Weitere Informationen zu Frameworkspeicherobjekten finden Sie unter Verwenden von Speicherpuffern.

WdfMemoryGetBuffer kann in jedem IRQL aufgerufen werden.

Beispiele

Das folgende Codebeispiel basiert auf der Rückruffunktion EvtUsbTargetPipeReadComplete im kmdf_fx2 Beispieltreibers. Im Beispiel wird der Puffer abgerufen, der dem Speicherobjekt zugeordnet ist, das die Rückruffunktion empfängt. Im Beispiel werden Daten aus dem Puffer in den Kontextbereich des Geräteobjekts kopiert, den der Treiber definiert hat.

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;
}

Anforderungen

Anforderung Wert
Zielplattform Universell
KMDF-Mindestversion 1.0
UMDF-Mindestversion 2.0
Kopfzeile wdfmemory.h (einschließen von Wdf.h)
Bibliothek Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL Beliebige Ebene
DDI-Complianceregeln DriverCreate(kmdf), MemAfterReqCompletedIntIoctlA(kmdf), MemAfterReqCompletedIoctlA(kmdf), MemAfterReqCompletedReadA(kmdf), MemAfterReqCompletedWriteA(kmdf)

Weitere Informationen

WdfMemoryCreate

WdfMemoryCreatePreallocated

WdfObjectContextGetObject