Bagikan melalui


PBUILD_MDL_FROM_SCATTER_GATHER_LIST fungsi panggilan balik (wdm.h)

Rutinitas BuildMdlFromScatterGatherList membangun MDL dari daftar sebar/kumpulkan yang dialokasikan oleh sistem.

Rutinitas ini disediakan untuk penggunaan sistem.

Sintaks

PBUILD_MDL_FROM_SCATTER_GATHER_LIST PbuildMdlFromScatterGatherList;

NTSTATUS PbuildMdlFromScatterGatherList(
  [in]  PDMA_ADAPTER DmaAdapter,
  [in]  PSCATTER_GATHER_LIST ScatterGather,
  [in]  PMDL OriginalMdl,
  [out] PMDL *TargetMdl
)
{...}

Parameter

[in] DmaAdapter

Penunjuk ke struktur DMA_ADAPTER yang dikembalikan oleh IoGetDmaAdapter yang mewakili adaptor bus-master atau pengontrol DMA.

[in] ScatterGather

Arahkan ke struktur SCATTER_GATHER_LIST yang diteruskan ke rutinitas AdapterListControl driver.

[in] OriginalMdl

Arahkan ke MDL asli yang digunakan driver untuk membangun daftar sebar/kumpulkan.

[out] TargetMdl

Penunjuk ke variabel yang digunakan rutin untuk mengembalikan MDL yang dibuat untuk menahan buffer yang dijelaskan oleh daftar sebar/kumpulkan. Nilai yang dikembalikan bisa sama dengan OriginalMdl.

Nilai kembali

BuildMdlFromScatterGatherList mengembalikan salah satu kode status berikut:

Menampilkan kode Deskripsi
STATUS_SUCCESS Operasi berhasil.
STATUS_INVALID_PARAMETER Parameter OriginalMdl adalah NULL.
STATUS_INSUFFICIENT_RESOURCES Tidak tersedia cukup memori untuk mengalokasikan MDL baru.
STATUS_NONE_MAPPED Sistem telah membuat MDL baru untuk lokasi memori dalam daftar sebar/kumpulkan. (Ini hanya terjadi jika rutinitas dipanggil dua kali pada daftar sebar/kumpulkan yang sama.)

Keterangan

BuildMdlFromScatterGatherList bukanlah rutinitas sistem yang dapat dipanggil langsung berdasarkan nama. Rutinitas ini hanya dapat dipanggil dengan penunjuk dari alamat yang dikembalikan dalam struktur DMA_OPERATIONS . Driver mendapatkan alamat rutinitas ini dengan memanggil IoGetDmaAdapter dengan anggota Versi parameter DeviceDescription diatur ke DEVICE_DESCRIPTION_VERSION2. Jika IoGetDmaAdapter mengembalikan NULL, rutinitas tidak tersedia di platform Anda.

Ketika driver membuat daftar sebar/kumpulkan untuk menulis ke perangkat, sistem dapat membuat salinan data yang akan ditulis, dan menggunakan salinan tersebut untuk melakukan operasi DMA. Gunakan rutinitas ini untuk mengakses lokasi memori dalam daftar sebar/kumpulkan, terlepas dari apakah lokasi tersebut adalah salinan.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tersedia di Windows XP dan versi Windows yang lebih baru.
Target Platform Desktop
Header wdm.h (termasuk Wdm.h)
IRQL <= DISPATCH_LEVEL
Aturan kepatuhan DDI IrqlDispatch(wdm)

Lihat juga

BuildScatterGatherList

DEVICE_DESCRIPTION

DMA_ADAPTER

DMA_OPERATIONS

IoGetDmaAdapter

SCATTER_GATHER_LIST