Bagikan melalui


DMA_APPEND_HANDLER fungsi panggilan balik (netdma.h)

Catatan Antarmuka NetDMA tidak didukung di Windows 8 dan yang lebih baru.

Fungsi ProviderAppendDma menambahkan daftar deskriptor DMA yang ditautkan ke deskriptor terakhir pada saluran DMA.

Sintaks

DMA_APPEND_HANDLER DmaAppendHandler;

NTSTATUS DmaAppendHandler(
  [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

ProviderAppendDma mengembalikan salah satu nilai status berikut:

Menampilkan kode Deskripsi
STATUS_SUCCESS
Operasi berhasil diselesaikan.
STATUS_UNSUCCESSFUL
Operasi gagal karena alasan yang tidak ditentukan.

Keterangan

Antarmuka NetDMA memanggil fungsi ProviderAppendDma driver penyedia DMA untuk menambahkan daftar deskriptor DMA yang ditautkan setelah pendeskripsi terakhir pada saluran DMA. Antarmuka NetDMA dapat memanggil ProviderAppendDma beberapa kali setelah transfer DMA dimulai. Namun, antarmuka NetDMA harus memanggil fungsi ProviderStartDma setelah reset saluran atau membatalkan, atau setelah saluran DMA dialokasikan terlebih dahulu.

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.
 
Antarmuka NetDMA mengatur anggota NextDescriptor dari deskriptor terakhir ke awal rantai deskriptor baru sebelum memanggil ProviderAppendDma.

Jika deskriptor saat ini dalam transfer aktif adalah deskriptor terakhir, mesin DMA harus membaca ulang deskriptor terakhir. Anggota NextDescriptor di struktur NET_DMA_DESCRIPTOR terakhir harus memiliki alamat baru, dan mesin DMA harus dilanjutkan dengan deskriptor berikutnya. Jika deskriptor saat ini bukan deskriptor terakhir, mesin DMA dapat terus memproses deskriptor DMA tanpa tugas tambahan.

NetDMA memanggil ProviderAppendDma 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

ProviderAllocateDmaChannel

ProviderStartDma