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