Bagikan melalui


DMA_START_HANDLER fungsi panggilan balik (netdma.h)

Catatan Antarmuka NetDMA tidak didukung

di Windows 8 dan yang lebih baru.

Fungsi ProviderStartDma memulai transfer DMA pada saluran DMA yang ditentukan.

Sintaks

DMA_START_HANDLER DmaStartHandler;

NTSTATUS DmaStartHandler(
  [in] PVOID ProviderChannelContext,
  [in] PNET_DMA_DESCRIPTOR DescriptorVirtualAddress,
  [in] PHYSICAL_ADDRESS DescriptorPhysicalAddress,
  [in] ULONG DescriptorCount
)
{...}

Parameter

[in] ProviderChannelContext

Pointer yang mengidentifikasi area konteks saluran DMA. Penyedia DMA mengembalikan handel ini ke NetDMA di lokasi yang ditentukan dalam parameter pProviderChannelContext Fungsi ProviderAllocateDmaChannel .

[in] DescriptorVirtualAddress

Penunjuk ke alamat virtual struktur NET_DMA_DESCRIPTOR pertama dalam daftar deskriptor DMA yang ditautkan. Alamat fisik yang sesuai ditentukan pada parameter DescriptorPhysicalAddress .

[in] DescriptorPhysicalAddress

Penunjuk ke alamat fisik deskriptor DMA pertama dalam daftar deskriptor DMA yang ditautkan. Alamat virtual yang sesuai ditentukan pada parameter DescriptorVirtualAddress .

[in] DescriptorCount

Jumlah deskriptor DMA di DescriptorVirtualAddress .

Catatan Driver penyedia NetDMA sebelum NetDMA versi 2.0 dapat mengabaikan parameter DescriptorCount . Untuk NetDMA 2.0 dan versi yang lebih baru, parameter ini adalah jumlah deskriptor dalam operasi DMA.
 

Nilai kembali

ProviderStartDma mengembalikan salah satu nilai status berikut:

Menampilkan kode Deskripsi
STATUS_SUCCESS
Operasi berhasil diselesaikan.
STATUS_RESOURCES
Operasi gagal karena sumber daya yang tidak mencukup.
STATUS_UNSUCCESSFUL
Operasi gagal karena alasan yang tidak ditentukan.

Keterangan

Antarmuka NetDMA memanggil fungsi ProviderStartDma penyedia DMA untuk memulai transfer DMA. Antarmuka NetDMA dapat memanggil ProviderStartDma kapan saja setelah saluran DMA dialokasikan. Antarmuka NetDMA harus memanggil ProviderStartDma setelah memanggil ProviderAbortDma, ProviderResetChannel, atau Fungsi ProviderAllocateDmaChannel untuk saluran DMA.

Sumber transfer DMA adalah daftar deskriptor DMA yang ditautkan. Anggota NextDescriptor dari struktur NET_DMA_DESCRIPTOR di parameter DescriptorVirtualAddress berisi alamat fisik struktur NET_DMA_DESCRIPTOR berikutnya dalam daftar yang ditautkan.

Catatan Di NetDMA 2.0 dan versi yang lebih baru, daftar deskriptor yang ditautkan tidak dihentikan NULL. Anggota NextDescriptor di deskriptor terakhir dalam daftar tertaut menentukan alamat fisik struktur NET_DMA_DESCRIPTOR yang akan digunakan dalam panggilan berikutnya ke fungsi ProviderAppendDma . Driver penyedia NetDMA 2.0 dapat menyimpan alamat di NextDescriptor dan menggunakan alamat ini sebagai awal daftar tertaut untuk operasi Tambahkan berikutnya.
 
Untuk melakukan operasi mulai, penyedia DMA harus mengalihkan daftar deskriptor DMA yang ada, jika ada, setelah menyelesaikan pemrosesan apa pun pada deskriptor saat ini. Penyedia DMA harus mengabaikan anggota NextDescriptor dalam struktur NET_DMA_DESCRIPTOR saat ini dan memuat deskriptor yang ditentukan ProviderStartDma .

Setelah ProviderStartDma memulai transfer DMA awal, antarmuka NetDMA dapat memanggil fungsi ProviderAppendDma untuk menambahkan data tambahan ke transfer.

NetDMA memanggil ProviderStartDma di IRQL <= DISPATCH_LEVEL.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Didukung untuk driver NetDMA 2.0 di Windows Server 2008. Didukung untuk driver NetDMA 1.1 di Windows Server 2008. Didukung untuk driver NetDMA 1.0 di Windows Server 2008 dan Windows Vista.
Target Platform Windows
Header netdma.h (termasuk Netdma.h)
IRQL <= DISPATCH_LEVEL

Lihat juga

NET_DMA_DESCRIPTOR

ProviderAbortDma

ProviderAllocateDmaChannel

ProviderAppendDma

ProviderResetChannel