HW_DPC_ROUTINE fonction de rappel (storport.h)
La routine HwStorDpcRoutine est une routine qui est différée pour exécution au niveau DE DISPATCH IRQL au moyen du mécanisme d’appel de procédure différée (DPC).
Syntaxe
HW_DPC_ROUTINE HwDpcRoutine;
void HwDpcRoutine(
PSTOR_DPC Dpc,
PVOID HwDeviceExtension,
PVOID SystemArgument1,
PVOID SystemArgument2
)
{...}
Paramètres
Dpc
Pointeur vers un contexte Storport DPC.
HwDeviceExtension
Pointeur vers l’extension de périphérique par adaptateur.
SystemArgument1
Pointeur vers les informations fournies par l’appelant.
SystemArgument2
Pointeur vers les informations fournies par l’appelant.
Valeur de retour
None
Remarques
Lorsqu’un pilote miniport appelle StorPortInitializeDpc pour initialiser un DPC, il doit charger le paramètre HwDpcRoutine de la routine StorPortInitializeDpc avec un pointeur vers la routine HwStorDpcRoutine .
Toute instance particulière d’une routine DPC est garantie d’être synchronisée avec d’autres instances de la routine DPC. Une routine DPC peut se synchroniser avec la routine HwStorStartIo ou avec la routine HwStorInterrupt en acquérant le verrou de rotation approprié avec un appel à StorPortAcquireSpinLock. Pour plus d’informations sur la gestion des verrous de rotation dans les routines DPC, consultez StorPortIssueDpc.
Le nom HwStorDpcRoutine est simplement un espace réservé. Le prototype réel de cette routine est défini dans storport.h comme suit :
typedef
BOOLEAN
HW_DPC_ROUTINE (
_In_ PSTOR_DPC Dpc,
_In_ PVOID HwDeviceExtension,
_In_opt_ PVOID SystemArgument1,
_In_opt_ PVOID SystemArgument2
);
Le pilote de port appelle la routine HwStorDpcRoutine à DISPATCH IRQL.
Exemples
Pour définir une fonction de rappel HwStorDpcRoutine , vous devez d’abord fournir une déclaration de fonction qui identifie le type de fonction de rappel que vous définissez. Windows fournit un ensemble de types de fonctions de rappel pour les pilotes. La déclaration d’une fonction à l’aide des types de fonction de rappel permet à l’analyse du code pour les pilotes, au vérificateur de pilotes statiques (SDV) et à d’autres outils de vérification de trouver des erreurs. Il s’agit d’une exigence pour l’écriture de pilotes pour le système d’exploitation Windows.
Par exemple, pour définir une routine de rappel HwStorDpcRoutine nommée MyHwDpcRoutine, utilisez le type HW_DPC_ROUTINE comme indiqué dans cet exemple de code :
HW_DPC_ROUTINE MyHwDpcRoutine;
Ensuite, implémentez votre routine de rappel comme suit :
_Use_decl_annotations_
BOOLEAN
MyHwDpcRoutine (
_In_ PSTOR_DPC Dpc,
_In_ PVOID HwDeviceExtension,
_In_opt_ PVOID SystemArgument1,
_In_opt_ PVOID SystemArgument2
);
{
...
}
Le type de fonction HW_DPC_ROUTINE est défini dans le fichier d’en-tête Storport.h. Pour identifier plus précisément les erreurs lors de l’exécution des outils d’analyse du code, veillez à ajouter l’annotation Use_decl_annotations à votre définition de fonction. L’annotation Use_decl_annotations garantit que les annotations appliquées au type de fonction HW_DPC_ROUTINE dans le fichier d’en-tête sont utilisées. Pour plus d’informations sur la configuration requise pour les déclarations de fonction, consultez Déclaration de fonctions à l’aide de types de rôles de fonction pour les pilotes Storport. Pour plus d’informations sur Use_decl_annotations, consultez Annotating Function Behavior.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Universal |
En-tête | storport.h (inclure Storport.h) |
IRQL | DISPATCH_LEVEL (voir la section Notes.) |
Voir aussi
Lorsqu’un pilote miniport appelle pour initialiser un DPC, il doit charger le paramètre HwDpcRoutine de la routine StorPortInitializeDpc avec un pointeur vers la routine HwStorDpcRoutine .
Toute instance particulière d’une routine DPC est garantie d’être synchronisée avec d’autres instances de la routine DPC. Une routine DPC peut se synchroniser avec la routine ou avec la routine en acquérant le verrou de rotation approprié avec un appel à . Pour plus d’informations sur la gestion des verrous de rotation dans les routines DPC, consultez .