struttura NET_DMA_CHANNEL_PARAMETERS (netdma.h)
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 |
---|---|
|
Il trasferimento DMA per il descrittore DMA più recente completato senza errori e il motore DMA ha più descrittori da elaborare. |
|
Trasferimento DMA per l'ultimo descrittore DMA nell'elenco collegato di descrittori completati senza errori. |
|
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. |
|
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. |
|
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) |