Partager via


NetDmaRegisterProvider, fonction (netdma.h)

Remarque 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 à fonctions ProviderXxx qui ont requis un contexte de fournisseur DMA.

[in] pNetDmaProviderHandle

Pointeur vers une valeur qui est un handle qui NetDmaRegisterProvider fournit pour identifier le fournisseur DMA. Le pilote de fournisseur DMA transmet ce handle à NetDmafonctions xxx 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 de retour

NetDmaRegisterProvider peut retourner l’une des valeurs suivantes :

Retourner le code 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 structure NET_DMA_PROVIDER_CHARACTERISTICS au ProviderCharacteristics paramètre 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 de fournisseur DMA fournit un pointeur vers un bloc d’informations de contexte allouées par le pilote au ProviderContext paramètre 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 à ProviderXxx fonctions 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 à NetDmafonctions xxx associées au fournisseur DMA.

Si un ordinateur prend en charge MSI-X, l’interface NetDMA, tandis que dans le contexte de la fonction NetDmaRegisterProvider, appelle le pilote du fournisseur DMA ProviderSetDmaChannelCpuAffinity fonction 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 de la IRP_MN_FILTER_RESOURCE_REQUIREMENTS IRP. Une fois que l'AddDevice routine retourne correctement, le gestionnaire Plug-and-Play (PnP) envoie l’IRP IRP_MN_FILTER_RESOURCE_REQUIREMENTS pour le fournisseur DMA. Le pilote du fournisseur DMA doit tenter d’allouer MSI-X ressources d’interruption en fonction des paramètres d’affinité que l’interface NetDMA a passée à ProviderSetDmaChannelCpuAffinity.

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

Exigences

Exigence Valeur
client minimum pris en charge Pris en charge pour les pilotes NetDMA 1.0 dans Windows Vista.
plateforme cible Universel
d’en-tête netdma.h (include Netdma.h)
IRQL PASSIVE_LEVEL

Voir aussi

AddDevice

IRP_MN_FILTER_RESOURCE_REQUIREMENTS

IoCreateDevice

NET_DMA_PROVIDER_CHARACTERISTICS

netDmaDeregisterProvider

ProviderSetDmaChannelCpuAffinity