DMA_APPEND_HANDLER fungsi panggilan balik (netdma.h)
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 .
Nilai kembali
ProviderAppendDma mengembalikan salah satu nilai status berikut:
Menampilkan kode | Deskripsi |
---|---|
|
Operasi berhasil diselesaikan. |
|
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.
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 |