Fungsi WdfMemoryGetBuffer (wdfmemory.h)

[Berlaku untuk KMDF dan UMDF]

Metode WdfMemoryGetBuffer mengembalikan penunjuk ke buffer yang terkait dengan objek memori tertentu.

Sintaks

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

Parameter

[in] Memory

Handel ke objek memori kerangka kerja.

[out, optional] BufferSize

Penunjuk ke lokasi yang menerima ukuran, dalam byte, dari buffer memori. Parameter ini bersifat opsional dan dapat berupa NULL.

Nilai kembali

WdfMemoryGetBuffer mengembalikan pointer ke buffer memori.

Pemeriksaan bug terjadi jika driver menyediakan handel objek yang tidak valid.

Keterangan

Untuk informasi selengkapnya tentang objek memori kerangka kerja, lihat Menggunakan Buffer Memori.

WdfMemoryGetBuffer dapat dipanggil di IRQL apa pun.

Contoh

Contoh kode berikut didasarkan pada fungsi panggilan balik EvtUsbTargetPipeReadComplete di driver sampel kmdf_fx2 . Contoh memperoleh buffer yang terkait dengan objek memori yang diterima fungsi panggilan balik. Contoh menyalin data dari buffer ke ruang konteks objek perangkat yang telah ditentukan 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;
}

Persyaratan

Persyaratan Nilai
Target Platform Universal
Versi KMDF minimum 1,0
Versi UMDF minimum 2.0
Header wdfmemory.h (termasuk Wdf.h)
Pustaka Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL Tingkat apa pun
Aturan kepatuhan DDI DriverCreate(kmdf), MemAfterReqCompletedIntIoctlA(kmdf), MemAfterReqCompletedIoctlA(kmdf), MemAfterReqCompletedReadA(kmdf), MemAfterReqCompletedWriteA(kmdf)

Lihat juga

WdfMemoryCreate

WdfMemoryCreatePreallocated

WdfObjectContextGetObject