HW_PROCESS_SERVICE_REQUEST fonction de rappel (storport.h)

La routine de rappel HwStorProcessServiceRequest reçoit l’IRP du contrôle d’appareil qui contient la demande IOCTL_MINIPORT_PROCESS_SERVICE_IRP lorsqu’un appelant, tel qu’une application en mode utilisateur ou un pilote en mode noyau, nécessite une opération de « rappel inversé ». L’E/S est effectuée par le pilote miniport lorsqu’il a besoin d’informer l’appelant de quelque chose ou a besoin que l’appelant fasse quelque chose.

Syntaxe

HW_PROCESS_SERVICE_REQUEST HwProcessServiceRequest;

void HwProcessServiceRequest(
  PVOID DeviceExtension,
  PVOID Irp
)
{...}

Paramètres

DeviceExtension

Pointeur vers la zone de stockage par adaptateur du pilote miniport virtuel.

Irp

Pointeur vers la demande d’E/S.

Valeur de retour

None

Remarques

Le nom HwStorProcessServiceRequest est un texte d’espace réservé pour le nom réel de la routine. Le prototype réel de cette routine est défini dans Storport.h comme suit :

typedef
VOID
HW_PROCESS_SERVICE_REQUEST (
  _In_ PVOID  DeviceExtension,
  _In_ PVOID  Irp
  );

Le pilote de port appelle la routine HwStorProcessServiceRequest du pilote miniport virtuel Storport à PASSIVE_LEVEL. Le pilote de miniport virtuel termine l’IRP en appelant la routine StorPortCompleteServiceIrp .

Exemples

Pour définir une fonction de rappel HwStorProcessServiceRequest , 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 HwStorProcessServiceRequest nommée MyHwProcessServiceRequest, utilisez le type HW_PROCESS_SERVICE_REQUEST comme indiqué dans cet exemple de code :

HW_PROCESS_SERVICE_REQUEST MyHwProcessServiceRequest;

Ensuite, implémentez votre routine de rappel comme suit :

_Use_decl_annotations_
VOID
MyHwProcessServiceRequest (
  _In_ PVOID  DeviceExtension,
  _In_ PVOID  Irp
  );
  {
      ...
  }

Le type de fonction HW_PROCESS_SERVICE_REQUEST 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_PROCESS_SERVICE_REQUEST 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)

Voir aussi

IOCTL_MINIPORT_PROCESS_SERVICE_IRP

StorPortCompleteServiceIrp