Fonction NetDmaRegisterProvider (netdma.h)

Note L’interface NetDMA n’est pas prise en charge

dans Windows 8 et versions ultérieures.

 
La fonction NetDmaRegisterProvider inscrit un fournisseur DMA.

Syntaxe

NET_DMA_EXPORT NTSTATUS NetDmaRegisterProvider(
  [in] PVOID                             ProviderContext,
  [in] PVOID                             *pNetDmaProviderHandle,
  [in] PNET_DMA_PROVIDER_CHARACTERISTICS ProviderCharacteristics
);

Paramètres

[in] ProviderContext

Pointeur vers un bloc d’informations de contexte allouées par le pilote qui stocke des informations sur le fournisseur DMA. NetDMA transmet les informations de contexte dans les appels suivants aux fonctions de fournisseurXxx qui nécessitaient un contexte de fournisseur DMA.

[in] pNetDmaProviderHandle

Pointeur vers une valeur qui est un handle que NetDmaRegisterProvider fournit pour identifier le fournisseur DMA. Le pilote du fournisseur DMA transmet ce handle aux fonctions NetDmaXxx qui nécessitent un handle de fournisseur.

[in] ProviderCharacteristics

Pointeur vers un NET_DMA_PROVIDER_CHARACTERISTICS structure qui définit les caractéristiques du fournisseur DMA.

Valeur retournée

NetDmaRegisterProvider peut retourner l’une des valeurs suivantes :

Code de retour Description
STATUS_SUCCESS
L’opération s’est terminée avec succès.
STATUS_RESOURCES
L’opération a échoué en raison de ressources insuffisantes.
STATUS_UNSUCCESSFUL
L’opération a échoué pour des raisons non spécifiées.

Remarques

Les pilotes de fournisseur DMA appellent la fonction NetDmaRegisterProvider pour inscrire un fournisseur DMA. Les pilotes du fournisseur DMA appellent NetDmaRegisterProvider dans leur routine AddDevice .

Dans la routine AddDevice , le pilote du fournisseur DMA appelle la fonction IoCreateDevice pour créer un objet d’appareil fonctionnel (FDO) et l’insère en haut de la pile d’appareils. Le pilote du fournisseur DMA appelle ensuite NetDmaRegisterProvider pour inscrire le fournisseur DMA associé.

Le pilote du fournisseur DMA fournit un NET_DMA_PROVIDER_CHARACTERISTICS structure au niveau du paramètre ProviderCharacteristics de NetDmaRegisterProvider. La structure NET_DMA_PROVIDER_CHARACTERISTICS spécifie les caractéristiques d’un fournisseur NetDMA, y compris les points d’entrée des fonctions ProviderXxx .

Le pilote du fournisseur DMA fournit un pointeur vers un bloc d’informations de contexte allouées au pilote au niveau du paramètre ProviderContext de NetDmaRegisterProvider. Cette zone de contexte stocke des informations sur le fournisseur DMA. L’interface NetDMA transmet les informations de contexte dans les appels suivants aux fonctions ProviderXxx qui nécessitent un contexte de fournisseur DMA.

Lorsque NetDmaRegisterProvider retourne, il fournit un handle à l’emplacement spécifié par le paramètre pNetDmaProviderHandle . L’interface NetDMA affecte ce handle pour identifier le fournisseur DMA. Le pilote de fournisseur DMA utilise ce handle dans tous les appels suivants aux fonctions NetDmaXxx associées au fournisseur DMA.

Si un ordinateur prend en charge MSI-X, l’interface NetDMA, dans le contexte de la fonction NetDmaRegisterProvider , appelle le pilote du fournisseur DMA Fonction ProviderSetDmaChannelCpuAffinity pour spécifier l’affinité processeur de l’interruption pour chaque canal DMA.

Si un ordinateur prend en charge MSI-X, le pilote du fournisseur DMA peut spécifier des affinités d’interruption lors de la gestion du IRP_MN_FILTER_RESOURCE_REQUIREMENTS IRP. Une fois la routine AddDevice retournée, le gestionnaire Plug-and-Play (PnP) envoie le IRP_MN_FILTER_RESOURCE_REQUIREMENTS IRP pour le fournisseur DMA. Le pilote du fournisseur DMA doit tenter d’allouer des ressources d’interruption MSI-X en fonction des paramètres d’affinité que l’interface NetDMA a transmis à ProviderSetDmaChannelCpuAffinity.

Pour désinscrire un fournisseur DMA, un pilote de fournisseur DMA appelle le Fonction NetDmaDeregisterProvider .

Configuration requise

Condition requise Valeur
Client minimal pris en charge Pris en charge pour les pilotes NetDMA 1.0 dans Windows Vista.
Plateforme cible Universal
En-tête netdma.h (inclure Netdma.h)
IRQL PASSIVE_LEVEL

Voir aussi

AddDevice

IRP_MN_FILTER_RESOURCE_REQUIREMENTS

IoCreateDevice

NET_DMA_PROVIDER_CHARACTERISTICS

NetDmaDeregisterProvider

ProviderSetDmaChannelCpuAffinity