Fungsi WdfMemoryCopyFromBuffer (wdfmemory.h)

[Berlaku untuk KMDF dan UMDF]

Metode WdfMemoryCopyFromBuffer menyalin konten buffer sumber tertentu ke dalam buffer objek memori tertentu.

Sintaksis

NTSTATUS WdfMemoryCopyFromBuffer(
  [in] WDFMEMORY DestinationMemory,
  [in] size_t    DestinationOffset,
  [in] PVOID     Buffer,
  [in] size_t    NumBytesToCopyFrom
);

Parameter-parameternya

[in] DestinationMemory

Handel ke objek memori kerangka kerja yang mewakili buffer tujuan.

[in] DestinationOffset

Offset, dalam byte, dari awal buffer tujuan. Operasi salin dimulai pada offset yang ditentukan di buffer tujuan.

[in] Buffer

Penunjuk ke buffer sumber.

[in] NumBytesToCopyFrom

Jumlah byte yang akan disalin dari buffer sumber ke buffer tujuan. Nilai ini tidak boleh lebih besar dari ukuran buffer sumber.

Mengembalikan nilai

WdfMemoryCopyFromBuffer mengembalikan STATUS_SUCCESS jika operasi berhasil. Jika tidak, metode ini mungkin mengembalikan salah satu nilai berikut:

Mengembalikan kode Deskripsi
STATUS_INVALID_PARAMETER
Parameter yang tidak valid terdeteksi.
STATUS_INVALID_BUFFER_SIZE
Offset byte yang DestinationOffset parameter yang ditentukan terlalu besar.
STATUS_BUFFER_TOO_SMALL
Ukuran buffer tujuan yang ditentukan parameter DestinationOffset, dimulai dari offset tujuan, lebih besar dari parameter NumBytesToCopyFrom.
 

Metode ini juga dapat mengembalikan nilai NTSTATUS lainnya.

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

Komentar

Kerangka kerja memverifikasi bahwa buffer tujuan cukup besar untuk menerima jumlah data yang ditentukan parameter NumBytesToCopyFrom.

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

Jika buffer sumber atau tujuan dialokasikan dari kumpulan memori yang dapat di-pageable, metode WdfMemoryCopyFromBuffer harus dipanggil di IRQL <= APC_LEVEL. Jika tidak, metode ini dapat dipanggil di IRQL apa pun.

Contoh

Contoh kode berikut mendapatkan handel ke objek memori kerangka kerja yang mewakili buffer output permintaan I/O, lalu menyalin konten buffer lain ke dalam buffer output permintaan I/O.

WDFMEMORY  memoryBuffer;
NTSTATUS  status;

status = WdfRequestRetrieveOutputMemory(
                                        Request,
                                        &memoryBuffer
                                        );
if (!NT_SUCCESS(status)) {
    goto Error;
}
status = WdfMemoryCopyFromBuffer(
                                 memoryBuffer,
                                 0,
                                 deviceContext->Buffer,
                                 Length
                                 );
if (!NT_SUCCESS(status)) {
    goto Error;
}

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 (lihat bagian Keterangan)
aturan kepatuhan DDI BufAfterReqCompletedIntIoctlA(kmdf), BufAfterReqCompletedIoctlA(kmdf), BufAfterReqCompletedReadA(kmdf), BufAfterReqCompletedWriteA(kmdf), DriverCreate(kmdf), MemAfterReqCompletedIntIoctlA(kmdf), MemAfterReqCompletedIoctlA(kmdf), MemAfterReqCompletedReadA(kmdf), MemAfterReqCompletedWriteA(kmdf)

Lihat juga

WdfMemoryCopyToBuffer

WdfRequestRetrieveOutputMemory