Bagikan melalui


DMA_CHANNEL_ALLOCATE_HANDLER fungsi panggilan balik (netdma.h)

Catatan Antarmuka NetDMA tidak didukung

di Windows 8 dan yang lebih baru.

 
Fungsi ProviderAllocateDmaChannel mengalokasikan saluran DMA.

Sintaks

DMA_CHANNEL_ALLOCATE_HANDLER DmaChannelAllocateHandler;

NTSTATUS DmaChannelAllocateHandler(
  [in]  PVOID ProviderContext,
  [in]  PNET_DMA_CHANNEL_PARAMETERS ChannelParameters,
  [in]  PVOID NetDmaChannelHandle,
  [out] PVOID *pProviderChannelContext
)
{...}

Parameter

[in] ProviderContext

Pointer yang mengidentifikasi area konteks penyedia DMA. Driver penyedia DMA meneruskan handel ini ke antarmuka NetDMA dalam panggilan ke Fungsi NetDmaRegisterProvider .

[in] ChannelParameters

Penunjuk ke NET_DMA_CHANNEL_PARAMETERS struktur yang menentukan parameter konfigurasi untuk saluran DMA.

[in] NetDmaChannelHandle

Handel yang mengidentifikasi saluran DMA. Driver penyedia meneruskan handel ini ke fungsi NetDmaXxx untuk mengidentifikasi saluran DMA.

[out] pProviderChannelContext

Penunjuk ke nilai yang merupakan penunjuk ke area konteks penyedia DMA untuk saluran DMA. Driver penyedia DMA mengalokasikan area konteks ini sebelum kembali dari ProviderAllocateDmaChannel. NetDMA meneruskan penunjuk area konteks ke fungsi ProviderXxx yang memerlukan konteks saluran penyedia.

Nilai kembali

ProviderAllocateDmaChannel 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 ProviderAllocateDmaChannel penyedia DMA untuk mengalokasikan saluran DMA. Antarmuka NetDMA memanggil ProviderAllocateDmaChannel sebelum menggunakan saluran DMA.

Driver penyedia DMA mencoba mengalokasikan saluran DMA dengan afinitas CPU interupsi yang cocok dengan sedikit yang ditentukan dalam anggota ProcessorAffinityMask dari NET_DMA_CHANNEL_PARAMETERS struktur di parameter ChannelParameters . Jika MSI-X tidak didukung atau MSI-X didukung tetapi saluran DMA dengan afinitas CPU interupsi yang cocok tidak tersedia, driver penyedia DMA mengalokasikan saluran DMA yang tersedia dan memanggil rutinitas KeSetTargetProcessorDpc untuk mengatur CPU target DPC interupsi agar sesuai dengan salah satu bit masker afinitas yang ditentukan.

Penyedia DMA selalu menampilkan nomor CPU yang terkait dengan DPC interupsi untuk saluran DMA ke antarmuka NetDMA di anggota CpuNumber dari struktur NET_DMA_CHANNEL_PARAMETERS.

Driver penyedia DMA menyediakan penunjuk ke blok informasi konteks yang dialokasikan driver di parameter pProviderChannelContext dari ProviderAllocateDmaChannel. Area konteks ini menyimpan informasi tentang saluran DMA. Antarmuka NetDMA meneruskan informasi konteks dalam panggilan berikutnya ke fungsi ProviderXxx yang memerlukan konteks saluran DMA.

Ketika antarmuka NetDMA memanggil ProviderAllocateDmaChannel, antarmuka ini menyediakan handel di parameter NetDmaChannelHandle . Driver penyedia DMA menggunakan handel ini dalam panggilan berikutnya ke fungsi NetDmaXxx yang terkait dengan saluran DMA.

Antarmuka NetDMA memanggil fungsi ProviderFreeDmaChannel untuk membebaskan saluran DMA yang dialokasikan sebelumnya.

NetDMA memanggil ProviderAllocateDmaChannel di IRQL <= DISPATCH_LEVEL.

Persyaratan

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

Lihat juga

KeSetTargetProcessorDpc

NET_DMA_CHANNEL_PARAMETERS

NetDmaRegisterProvider

PenyediaFreeDmaChannel