Fungsi WdfMemoryGetBuffer (wdfmemory.h)

[Berlaku untuk KMDF dan UMDF]

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

Sintaksis

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

Parameter-parameternya

[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 NULL.

Mengembalikan nilai

WdfMemoryGetBuffer mengembalikan pointer ke buffer memori.

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

Komentar

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 callback EvtUsbTargetPipeReadComplete di driver sampel kmdf_fx2. Contoh mendapatkan 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
Platform Target Universal
versi KMDF Minimum 1.0
versi UMDF Minimum 2.0
Tajuk wdfmemory.h (termasuk Wdf.h)
Perpustakaan 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

WdfMemoryBuat

WdfMemoryCreatePreallocated

WdfObjectContextGetObject