Partager via


structure NET_DMA_CHANNEL_PARAMETERS (netdma.h)

Remarque 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 des attributs de canal DMA. Définissez ce membre sur zéro. Il n’existe actuellement aucun indicateur défini.

CompletionVirtualAddress

Adresse virtuelle de l’emplacement de mémoire où le moteur DMA peut écrire l’état 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’état d’achèvement du transfert DMA. 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’état d’achèvement à l’adresse spécifiée est une combinaison à l’échelle 64 bits de l’adresse physique du descripteur DMA le plus récent que le moteur DMA a traité et des informations d’état 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 d’état 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 terminé sans erreur et le moteur DMA comporte plus de descripteurs à traiter.
NetDmaTransferStatusIdle
Transfert DMA pour le dernier descripteur DMA dans la liste liée des descripteurs terminés sans erreur.
NetDmaTransferStatusSuspend
Le transfert DMA pour le descripteur DMA le plus récent terminé sans erreur et les transferts DMA sont suspendus, car l’interface NetDMA a appelé la fonction ProviderSuspendDma. Le moteur DMA redémarre le transfert une fois que l’interface NetDMA appelle la fonction ProviderResumeDma.
NetDmaTransferStatusHalted
Le transfert DMA pour le transfert DMA le plus récent a été abandonné en raison d’erreurs ou parce que l’interface NetDMA a appelé la fonction ProviderAbortDma.
NetDmaTransferStatusArmed
Le transfert DMA pour le 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 le processeur 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é du canal DMA qui représente la priorité du canal DMA par rapport à d’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 le matériel prend en charge, la valeur la plus élevée prise en charge par le matériel doit être utilisée. L’interface Windows Vista NetDMA définit ce membre sur zéro.

CpuNumber

Numéro d’UC associé au canal DMA. Le pilote du fournisseur DMA définit la valeur avant de retourner à partir du
ProviderAllocateDmaChannel, fonction. Le moteur DMA utilise ce processeur pour interrompre les contrôleurs de domaine 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 d’UC indiqué, sauf s’il n’y a pas eu d’interruption MSI-X disponible pour l’UC indiquée.

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
ProviderAllocateDmaChannel fonction du pilote de fournisseur DMA pour allouer et initialiser le canal DMA.

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

Exigences

Exigence Valeur
client minimum pris en charge Windows Vista
serveur minimum pris en charge Windows Server 2008
d’en-tête netdma.h (include Netdma.h)

Voir aussi

NET_DMA_DESCRIPTOR

ProviderAbortDma

ProviderAllocateDmaChannel

ProviderResumeDma

ProviderSuspendDma