Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La fonction ProviderAppendDma ajoute une liste liée de descripteurs DMA au dernier descripteur sur un canal DMA.
Syntaxe
DMA_APPEND_HANDLER DmaAppendHandler;
NTSTATUS DmaAppendHandler(
[in] PVOID ProviderChannelContext,
[in] PNET_DMA_DESCRIPTOR DescriptorVirtualAddress,
[in] PHYSICAL_ADDRESS DescriptorPhysicalAddress,
[in] ULONG DescriptorCount
)
{...}
Paramètres
[in] ProviderChannelContext
Pointeur qui identifie la zone de contexte d’un canal DMA. Le fournisseur DMA a retourné ce handle à NetDMA à l’emplacement spécifié dans le paramètre pProviderChannelContext du paramètre fonction ProviderAllocateDmaChannel.
[in] DescriptorVirtualAddress
Pointeur vers l’adresse virtuelle de la première structure de NET_DMA_DESCRIPTOR dans une liste liée de descripteurs DMA. L’adresse physique correspondante est spécifiée au paramètre DescriptorPhysicalAddress.
[in] DescriptorPhysicalAddress
Pointeur vers l’adresse physique du premier descripteur DMA dans une liste liée de descripteurs DMA. L’adresse virtuelle correspondante est spécifiée au paramètre DescriptorVirtualAddress.
[in] DescriptorCount
Nombre de descripteurs DMA à DescriptorVirtualAddress .
Valeur de retour
ProviderAppendDma retourne l’une des valeurs d’état suivantes :
| Retourner le code | Description |
|---|---|
|
L’opération s’est terminée avec succès. |
|
L’opération a échoué pour des raisons non spécifiées. |
Remarques
L’interface NetDMA appelle la fonction ProviderAppendDma d’un pilote de fournisseur DMA pour ajouter une liste liée de descripteurs DMA après le dernier descripteur sur un canal DMA. L’interface NetDMA peut appeler ProviderAppendDma plusieurs fois après le démarrage d’un transfert DMA. Toutefois, l’interface NetDMA doit appeler la fonction ProviderStartDma après la réinitialisation ou l’abandon d’un canal, ou après l’allocation initiale du canal DMA.
Si le descripteur actuel dans un transfert actif est le dernier descripteur, le moteur DMA doit relire le dernier descripteur. Le NextDescriptor membre dans la dernière structure NET_DMA_DESCRIPTOR doit avoir une nouvelle adresse et le moteur DMA doit continuer avec le descripteur suivant. Si le descripteur actuel n’est pas le dernier descripteur, le moteur DMA peut continuer à traiter les descripteurs DMA sans tâches supplémentaires.
NetDMA appelle ProviderAppendDma au <IRQL = DISPATCH_LEVEL.
Exigences
| Exigence | Valeur |
|---|---|
| client minimum pris en charge | Pris en charge pour les pilotes NetDMA 2.0 dans Windows Server 2008. Pris en charge pour les pilotes NetDMA 1.1 dans Windows Server 2008. Pris en charge pour les pilotes NetDMA 1.0 dans Windows Server 2008 et Windows Vista. |
| plateforme cible | Windows |
| d’en-tête | netdma.h (include Netdma.h) |
| IRQL | <= DISPATCH_LEVEL |