structure NET_DMA_CHANNEL_PARAMETERS (netdma.h)
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 |
---|---|
|
Le transfert DMA pour le descripteur DMA le plus récent terminé sans erreur et le moteur DMA comporte plus de descripteurs à traiter. |
|
Transfert DMA pour le dernier descripteur DMA dans la liste liée des descripteurs terminés sans erreur. |
|
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. |
|
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. |
|
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) |