DMA_CHANNEL_ALLOCATE_HANDLER funzione di callback (netdma.h)

Nota L'interfaccia NetDMA non è supportata

in Windows 8 e versioni successive.

 
La funzione ProviderAllocateDmaChannel alloca un canale DMA.

Sintassi

DMA_CHANNEL_ALLOCATE_HANDLER DmaChannelAllocateHandler;

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

Parametri

[in] ProviderContext

Puntatore che identifica l'area di contesto di un provider DMA. Il driver del provider DMA passa questo handle all'interfaccia NetDMA in una chiamata a Funzione NetDmaRegisterProvider .

[in] ChannelParameters

Puntatore a NET_DMA_CHANNEL_PARAMETERS struttura che definisce i parametri di configurazione per il canale DMA.

[in] NetDmaChannelHandle

Handle che identifica il canale DMA. I driver del provider passano questo handle alle funzioni NetDmaXxx per identificare il canale DMA.

[out] pProviderChannelContext

Puntatore a un valore che rappresenta un puntatore all'area di contesto di un provider DMA per il canale DMA. Il driver del provider DMA alloca questa area di contesto prima di restituire da ProviderAllocateDmaChannel. NetDMA passa il puntatore dell'area di contesto alle funzioni ProviderXxx che richiedono un contesto del canale del provider.

Valore restituito

ProviderAllocateDmaChannel restituisce uno dei valori di stato seguenti:

Codice restituito Descrizione
STATUS_SUCCESS
Operazione riuscita.
STATUS_RESOURCES
L'operazione non è riuscita a causa di risorse insufficienti.
STATUS_UNSUCCESSFUL
L'operazione non è riuscita per motivi non specificati.

Commenti

L'interfaccia NetDMA chiama la funzione ProviderAllocateDmaChannel del driver del provider DMA per allocare un canale DMA. L'interfaccia NetDMA chiama ProviderAllocateDmaChannel prima di usare un canale DMA.

Il driver del provider DMA tenta di allocare un canale DMA con un'affinità di CPU di interrupt che corrisponde a un bit specificato nel membro ProcessorAffinityMask del NET_DMA_CHANNEL_PARAMETERS struttura nel parametro ChannelParameters . Se MSI-X non è supportato o MSI-X è supportato, ma non è disponibile un canale DMA con affinità di interruzione della CPU corrispondente, il driver del provider DMA alloca qualsiasi canale DMA disponibile e chiama la routine KeSetTargetProcessorDpc per impostare la CPU di destinazione dell'interrupt DPC in modo che corrisponda a uno dei bit di affinity mask specificati.

Il driver DMA restituisce sempre il numero di CPU associato all'interrupt DPC per il canale DMA all'interfaccia NetDMA nel membro CpuNumber della struttura NET_DMA_CHANNEL_PARAMETERS.

Il driver del provider DMA fornisce un puntatore a un blocco di informazioni sul contesto allocato dal driver nel parametro pProviderChannelContext di ProviderAllocateDmaChannel. Questa area di contesto archivia le informazioni sul canale DMA. L'interfaccia NetDMA passa le informazioni di contesto nelle chiamate successive alle funzioni ProviderXxx che richiedono un contesto del canale DMA.

Quando l'interfaccia NetDMA chiama ProviderAllocateDmaChannel, fornisce un handle al parametro NetDmaChannelHandle . Il driver del provider DMA usa questo handle nelle chiamate successive alle funzioni NetDmaXxx associate al canale DMA.

L'interfaccia NetDMA chiama la funzione ProviderFreeDmaChannel per liberare un canale DMA allocato in precedenza.

NetDMA chiama ProviderAllocateDmaChannel in IRQL <= DISPATCH_LEVEL.

Requisiti

Requisito Valore
Client minimo supportato Supportato per i driver NetDMA 1.0 in Windows Vista.
Piattaforma di destinazione Windows
Intestazione netdma.h (include Netdma.h)
IRQL <= DISPATCH_LEVEL

Vedi anche

KeSetTargetProcessorDpc

NET_DMA_CHANNEL_PARAMETERS

NetDmaRegisterProvider

ProviderFreeDmaChannel