NetDmaRegisterProvider, fonction (netdma.h)
dans Windows 8 et versions ultérieures.
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 |
---|---|
|
L’opération s’est terminée avec succès. |
|
L’opération a échoué en raison de ressources insuffisantes. |
|
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 |