Fonction NdisMQueueDpcEx (ndis.h)
Les pilotes miniportS NDIS appellent la fonction NdisMQueueDpcEx pour planifier des appels DPC sur les processeurs.
Syntaxe
KAFFINITY NdisMQueueDpcEx(
[in] IN NDIS_HANDLE NdisInterruptHandle,
[in] IN ULONG MessageId,
[in] IN PGROUP_AFFINITY TargetProcessors,
[in] IN PVOID MiniportDpcContext
);
Paramètres
[in] NdisInterruptHandle
Handle d’interruption que le pilote miniport a obtenu lors d’un appel précédent au Fonction NdisMRegisterInterruptEx .
[in] MessageId
ID de message MSI pour le DPC. Si la DPC concerne une interruption basée sur une ligne, ce paramètre n’est pas utilisé et doit être défini sur zéro. Sinon, MessageId est un index du IO_INTERRUPT_MESSAGE_INFO_ENTRY structure à l’intérieur d’un IO_INTERRUPT_MESSAGE_INFO structure. NDIS transmet un pointeur vers la structure IO_INTERRUPT_MESSAGE_INFO associée au membre MessageInfoTable lorsque le pilote s’inscrit correctement à MSI avec la fonction NdisMRegisterInterruptEx .
[in] TargetProcessors
Bitmap qui indique les processeurs cibles. NDIS doit planifier un DPC pour chaque processeur cible indiqué dans la bitmap. Chaque bit dans TargetProcessors identifie un processeur. Si l’appelant définit le bit 0, NDIS planifie un DPC pour le processeur 0. Si l’appelant définit le bit 1, NDIS planifie un DPC pour le processeur 1, et ainsi de suite.
[in] MiniportDpcContext
Pointeur vers une zone de contexte spécifiée par l’appelant. NDIS transmet ce pointeur au paramètre MiniportDpcContext du MiniportInterruptDPC et Fonctions MiniportMessageInterruptDPC .
Valeur retournée
NdisMQueueDpcEx retourne une bitmap qui indique les processeurs cibles. Chaque bit de la valeur de retour identifie un processeur.
NDIS a correctement planifié un DPC pour chaque processeur cible défini dans la bitmap. Si NDIS définit le bit 0, NDIS a planifié un DPC pour le processeur 0. Si NDIS définit le bit 1, NDIS a planifié un DPC pour le processeur 1, et ainsi de suite.
Si le pilote a demandé un DPC pour un processeur et que NDIS indique qu’il n’a pas planifié cette DPC, la DPC n’a pas été planifiée, car la DPC qui mappait à cette paire interruption/processeur était déjà planifiée pour ce processeur.
Remarques
Les pilotes NDIS 6.20 et versions ultérieures de miniport appellent NdisMQueueDpcEx pour demander des appels DPC pour d’autres processeurs. NDIS appelle miniportInterruptDPC ou Fonction MiniportMessageInterruptDPC pour terminer le traitement différé d’une interruption.
NdisMQueueDpcEx est identique à la fonction NdisMQueueDpc , sauf que le paramètre TargetProcessors a un type de KGROUP_AFFINITY. Par conséquent, NdisMQueueDpcEx peut planifier des DCP sur des processeurs dans n’importe quel groupe de processeurs. Pour planifier des PDC dans plusieurs groupes de processeurs, vous pouvez utiliser plusieurs appels à NdisMQueueDpcEx.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Pris en charge dans NDIS 6.20 et versions ultérieures. |
Plateforme cible | Universal |
En-tête | ndis.h (inclure Ndis.h) |
Bibliothèque | Ndis.lib |
IRQL | N’importe quel niveau |