Partager via


structure NET_DMA_CHANNEL_PARAMETERS (netdma.h)

Note L’interface NetDMA n’est pas prise en charge dans Windows 8 et versions ultérieures.
 
La structure NET_DMA_CHANNEL_PARAMETERS spécifie les paramètres de configuration qu’un pilote de fournisseur DMA doit utiliser pour configurer un canal DMA.

Syntaxe

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;

Membres

Revision

Numéro de révision de cette structure.

Pour Windows 7 et Windows Server 2008 R2 et versions ultérieures, définissez ce membre sur NET_DMA_CHANNEL_PARAMETERS_REVISION_2.

Pour Windows Vista et Windows Server 2008, définissez ce membre sur NET_DMA_CHANNEL_PARAMETERS_REVISION_1.

Size

Taille, en octets, de cette structure. Définissez ce membre sur sizeof(NET_DMA_CHANNEL_PARAMETERS).

Flags

Ensemble de bits pour les indicateurs qui définissent les attributs de canal DMA. Définissez ce membre sur zéro. Aucun indicateur n’est actuellement défini.

CompletionVirtualAddress

Adresse virtuelle de l’emplacement de mémoire où le moteur DMA peut écrire le status d’achèvement du transfert DMA. Cette adresse virtuelle est associée à l’adresse physique spécifiée dans le
Membre CompletionPhysicalAddress .

CompletionPhysicalAddress

Adresse physique de l’emplacement de mémoire où le moteur DMA peut écrire l’achèvement du transfert DMA status. Si l’indicateur NET_DMA_STATUS_UPDATE_ON_COMPLETION n’est pas défini dans le membre ControlFlags de la structure NET_DMA_DESCRIPTOR , CompletionPhysicalAddress n’est pas utilisé. Sinon, la valeur d’achèvement status à l’adresse spécifiée est une combinaison large de 64 bits de l’adresse physique du descripteur DMA le plus récent que le moteur DMA a traité et d’informations status supplémentaires.

L’adresse physique du descripteur DMA doit être alignée sur les limites 64 bits. Par conséquent, les six bits inférieurs de l’adresse sont disponibles pour d’autres informations. Le moteur DMA combine les valeurs status suivantes avec l’adresse de descripteur à l’aide d’une opération OR au niveau du bit :

Valeur Signification
NetDmaTransferStatusActive
Le transfert DMA pour le descripteur DMA le plus récent s’est terminé sans erreurs, et le moteur DMA a plus de descripteurs à traiter.
NetDmaTransferStatusIdle
Transfert DMA pour le dernier descripteur DMA de la liste liée de descripteurs terminé sans erreur.
NetDmaTransferStatusSuspend
Le transfert DMA pour le descripteur DMA le plus récent s’est terminé sans erreurs, et les transferts DMA sont suspendus parce que l’interface NetDMA a appelé la fonction ProviderSuspendDma . Le moteur DMA redémarre le transfert après que l’interface NetDMA a appelé la fonction ProviderResumeDma .
NetDmaTransferStatusHalted
Le transfert DMA pour le transfert DMA le plus récent a été abandonné en raison d’erreurs ou de l’interface NetDMA appelée fonction ProviderAbortDma .
NetDmaTransferStatusArmed
Le transfert DMA du premier descripteur n’est pas terminé et l’adresse de descripteur terminée n’est pas valide.

ProcessorAffinityMask

Bitmap qui indique les processeurs disponibles pour une utilisation avec ce canal DMA. Chaque bit dans ProcessorAffinityMask identifie un processeur. Par exemple, la définition du bit 0 indique que l’UC 0 peut être utilisé, la définition du bit 1 indique que le processeur 1 peut être utilisé, et ainsi de suite.

ChannelPriority

Valeur de priorité de canal DMA qui représente la priorité du canal DMA par rapport aux autres canaux DMA sur le même moteur DMA. Un paramètre de priorité inférieure indique un canal DMA de priorité inférieure. Si cette valeur indique une priorité plus élevée que celle prise en charge par le matériel, la valeur la plus élevée prise en charge par le matériel doit être utilisée. L’interface NetDMA de Windows Vista définit ce membre sur zéro.

CpuNumber

Numéro de processeur associé au canal DMA. Le pilote du fournisseur DMA définit la valeur avant qu’elle ne retourne à partir du
Fonction ProviderAllocateDmaChannel . Le moteur DMA utilise ce processeur pour interrompre les PDC associés au canal DMA. Si le moteur DMA et la configuration de l’ordinateur prennent en charge MSI-X, l’interruption doit également être associée au numéro de processeur indiqué, sauf s’il n’y a pas d’interruption MSI-X disponible pour le processeur indiqué.

ProcessorAffinityMaskEx

Numéro de groupe et bitmap des processeurs auxquels ce canal DMA peut être associé.

Remarques

Avant d’utiliser un canal DMA, l’interface NetDMA appelle le
Fonction ProviderAllocateDmaChannel du pilote de fournisseur DMA pour allouer et initialiser le canal DMA.

L’interface NetDMA fournit une structure NET_DMA_CHANNEL_PARAMETERS au paramètre ChannelParameters de ProviderAllocateDmaChannel.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista
Serveur minimal pris en charge Windows Server 2008
En-tête netdma.h (inclure Netdma.h)

Voir aussi

NET_DMA_DESCRIPTOR

ProviderAbortDma

ProviderAllocateDmaChannel

ProviderResumeDma

ProviderSuspendDma