Bagikan melalui


Fungsi NetDmaRegisterProvider (netdma.h)

Catatan Antarmuka NetDMA tidak didukung

di Windows 8 dan yang lebih baru.

 
Fungsi NetDmaRegisterProvider mendaftarkan penyedia DMA.

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
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

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

TambahkanDevice

IRP_MN_FILTER_RESOURCE_REQUIREMENTS

IoCreateDevice

NET_DMA_PROVIDER_CHARACTERISTICS

NetDmaDeregisterProvider

ProviderSetDmaChannelCpuAffinity