Condividi tramite


struttura NET_DMA_CHANNEL_PARAMETERS (netdma.h)

Nota L'interfaccia NetDMA non è supportata in Windows 8 e versioni successive.
 
La struttura NET_DMA_CHANNEL_PARAMETERS specifica i parametri di configurazione che un driver del provider DMA deve usare per configurare un canale DMA.

Sintassi

typedef struct _NET_DMA_CHANNEL_PARAMETERS {
  USHORT           Revision;
  USHORT           Size;
  ULONG            Flags;
  PVOID            CompletionVirtualAddress;
  PHYSICAL_ADDRESS CompletionPhysicalAddress;
  ULONG            ProcessorAffinityMask;
  ULONG            ChannelPriority;
  ULONG            CpuNumber;
  GROUP_AFFINITY   ProcessorAffinityMaskEx;
} NET_DMA_CHANNEL_PARAMETERS, *PNET_DMA_CHANNEL_PARAMETERS;

Membri

Revision

Numero di revisione di questa struttura.

Per Windows 7 e Windows Server 2008 R2 e versioni successive, impostare questo membro su NET_DMA_CHANNEL_PARAMETERS_REVISION_2.

Per Windows Vista e Windows Server 2008, impostare questo membro su NET_DMA_CHANNEL_PARAMETERS_REVISION_1.

Size

Dimensione, in byte, di questa struttura. Impostare questo membro su sizeof(NET_DMA_CHANNEL_PARAMETERS).

Flags

Set di bit per i flag che definiscono gli attributi del canale DMA. Impostare questo membro su zero. Attualmente non sono definiti flag.

CompletionVirtualAddress

Indirizzo virtuale del percorso di memoria in cui il motore DMA può scrivere lo stato di completamento del trasferimento DMA. Questo indirizzo virtuale è associato all'indirizzo fisico specificato in
membro del CompletionPhysicalAddress.

CompletionPhysicalAddress

Indirizzo fisico della posizione di memoria in cui il motore DMA può scrivere lo stato di completamento del trasferimento DMA. Se il flag di NET_DMA_STATUS_UPDATE_ON_COMPLETION non è impostato nel ControlFlags membro della struttura NET_DMA_DESCRIPTOR, non viene utilizzato CompletionPhysicalAddress. In caso contrario, il valore dello stato di completamento in corrispondenza dell'indirizzo specificato è una combinazione a 64 bit dell'indirizzo fisico del descrittore DMA più recente elaborato dal motore DMA e informazioni aggiuntive sullo stato.

L'indirizzo fisico del descrittore DMA deve essere allineato ai limiti a 64 bit. Pertanto, i sei bit inferiori dell'indirizzo sono disponibili per altre informazioni. Il motore DMA combina i valori di stato seguenti con l'indirizzo del descrittore usando un'operazione OR bit per bit:

Valore Significato
NetDmaTransferStatusActive
Il trasferimento DMA per il descrittore DMA più recente completato senza errori e il motore DMA ha più descrittori da elaborare.
NetDmaTransferStatusIdle
Trasferimento DMA per l'ultimo descrittore DMA nell'elenco collegato di descrittori completati senza errori.
NetDmaTransferStatusSuspend
Il trasferimento DMA per il descrittore DMA più recente completato senza errori e i trasferimenti DMA vengono sospesi perché l'interfaccia NetDMA denominata ProviderSuspendDma funzione. Il motore DMA riavvia il trasferimento dopo che l'interfaccia NetDMA chiama la funzione ProviderResumeDma.
NetDmaTransferStatusHalted
Il trasferimento DMA per il trasferimento DMA più recente è stato interrotto a causa di errori o perché l'interfaccia NetDMA ha chiamato la funzione ProviderAbortDma.
NetDmaTransferStatusArmed
Il trasferimento DMA per il primo descrittore non è stato completato e l'indirizzo del descrittore completato non è valido.

ProcessorAffinityMask

Bitmap che indica le CPU disponibili per l'uso con questo canale DMA. Ogni bit in ProcessorAffinityMask identifica una CPU. Ad esempio, l'impostazione del bit 0 indica che è possibile usare CPU 0, l'impostazione del bit 1 indica che la CPU 1 può essere usata e così via.

ChannelPriority

Valore di priorità del canale DMA che rappresenta la priorità per il canale DMA rispetto ad altri canali DMA nello stesso motore DMA. Un'impostazione di priorità inferiore indica un canale DMA con priorità inferiore. Se questo valore indica una priorità più alta rispetto all'hardware supportato, deve essere usato il valore più alto supportato dall'hardware. L'interfaccia NetDMA di Windows Vista imposta questo membro su zero.

CpuNumber

Numero di CPU associato al canale DMA. Il driver del provider DMA imposta il valore prima che venga restituito dal
funzione providerAllocateDmaChannel. Il motore DMA usa questa CPU per i DPC di interrupt associati al canale DMA. Se il motore DMA e la configurazione del computer supportano MSI-X, l'interrupt deve essere associato anche al numero di CPU indicato, a meno che non ci sia stato MSI-X interrupt disponibile per la CPU indicata.

ProcessorAffinityMaskEx

Numero di gruppo e bitmap delle CPU a cui può essere associato questo canale DMA.

Osservazioni

Prima di usare un canale DMA, l'interfaccia NetDMA chiama
ProviderAllocateDmaChannel funzione del driver del provider DMA per allocare e inizializzare il canale DMA.

L'interfaccia NetDMA fornisce una struttura NET_DMA_CHANNEL_PARAMETERS nel parametro ChannelParameters di ProviderAllocateDmaChannel.

Fabbisogno

Requisito Valore
client minimo supportato Windows Vista
server minimo supportato Windows Server 2008
intestazione netdma.h (include Netdma.h)

Vedere anche

NET_DMA_DESCRIPTOR

ProviderAbortDma

ProviderAllocateDmaChannel

ProviderResumeDma

ProviderSuspendDma