Fungsi NetDmaRegisterProvider (netdma.h)
di Windows 8 dan yang lebih baru.
Sintaks
NET_DMA_EXPORT NTSTATUS NetDmaRegisterProvider(
[in] PVOID ProviderContext,
[in] PVOID *pNetDmaProviderHandle,
[in] PNET_DMA_PROVIDER_CHARACTERISTICS ProviderCharacteristics
);
Parameter
[in] ProviderContext
Penunjuk ke blok informasi konteks yang dialokasikan driver yang menyimpan informasi tentang penyedia DMA. NetDMA meneruskan informasi konteks dalam panggilan berikutnya ke fungsi Xxx Penyediayang memerlukan konteks penyedia DMA.
[in] pNetDmaProviderHandle
Pointer ke nilai yang merupakan handel yang disediakan NetDmaRegisterProvider untuk mengidentifikasi penyedia DMA. Driver penyedia DMA meneruskan handel ini ke fungsi NetDmaXxx yang memerlukan handel penyedia.
[in] ProviderCharacteristics
Penunjuk ke NET_DMA_PROVIDER_CHARACTERISTICS struktur yang menentukan karakteristik penyedia DMA.
Nilai kembali
NetDmaRegisterProvider dapat mengembalikan salah satu nilai berikut:
Menampilkan kode | Deskripsi |
---|---|
|
Operasi berhasil diselesaikan. |
|
Operasi gagal karena sumber daya yang tidak mencukup. |
|
Operasi gagal karena alasan yang tidak ditentukan. |
Keterangan
Driver penyedia DMA memanggil fungsi NetDmaRegisterProvider untuk mendaftarkan penyedia DMA. Driver penyedia DMA memanggil NetDmaRegisterProvider dalam rutinitas AddDevice mereka.
Dalam rutinitas AddDevice , driver penyedia DMA memanggil fungsi IoCreateDevice untuk membuat objek perangkat fungsional (FDO) dan menyisipkannya di bagian atas tumpukan perangkat. Driver penyedia DMA kemudian memanggil NetDmaRegisterProvider untuk mendaftarkan penyedia DMA terkait.
Driver penyedia DMA menyediakan NET_DMA_PROVIDER_CHARACTERISTICS struktur pada parameter ProviderCharacteristics dari NetDmaRegisterProvider. Struktur NET_DMA_PROVIDER_CHARACTERISTICS menentukan karakteristik untuk penyedia NetDMA, termasuk titik masuk untuk fungsi ProviderXxx .
Driver penyedia DMA menyediakan pointer ke blok informasi konteks yang dialokasikan driver di parameter ProviderContext dari NetDmaRegisterProvider. Area konteks ini menyimpan informasi tentang penyedia DMA. Antarmuka NetDMA meneruskan informasi konteks dalam panggilan berikutnya ke fungsi ProviderXxx yang memerlukan konteks penyedia DMA.
Ketika NetDmaRegisterProvider kembali, netDmaRegisterProvider menyediakan handel di lokasi yang ditentukan parameter pNetDmaProviderHandle . Antarmuka NetDMA menetapkan handel ini untuk mengidentifikasi penyedia DMA. Driver penyedia DMA menggunakan handel ini di semua panggilan berikutnya ke fungsi NetDmaXxx yang terkait dengan penyedia DMA.
Jika komputer mendukung MSI-X, antarmuka NetDMA, sementara dalam konteks fungsi NetDmaRegisterProvider , memanggil driver penyedia DMA Fungsi ProviderSetDmaChannelCpuAffinity untuk menentukan afinitas CPU interupsi untuk setiap saluran DMA.
Jika komputer mendukung MSI-X, driver penyedia DMA dapat menentukan afinitas interupsi saat menangani IRP_MN_FILTER_RESOURCE_REQUIREMENTS IRP. Setelah rutinitas AddDevice berhasil dikembalikan, manajer Plug and Play (PnP) mengirimkan IRP IRP_MN_FILTER_RESOURCE_REQUIREMENTS untuk penyedia DMA. Driver penyedia DMA harus mencoba mengalokasikan sumber daya interupsi MSI-X sesuai dengan parameter afinitas yang diteruskan antarmuka NetDMA ke ProviderSetDmaChannelCpuAffinity.
Untuk membatalkan pendaftaran penyedia DMA, driver penyedia DMA memanggil Fungsi NetDmaDeregisterProvider .
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Didukung untuk driver NetDMA 1.0 di Windows Vista. |
Target Platform | Universal |
Header | netdma.h (termasuk Netdma.h) |
IRQL | PASSIVE_LEVEL |
Lihat juga
IRP_MN_FILTER_RESOURCE_REQUIREMENTS NET_DMA_PROVIDER_CHARACTERISTICS ProviderSetDmaChannelCpuAffinitySaran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk