SubscribeServiceChangeNotifications fonction)

S’abonne aux notifications de modification de l’état du service à l’aide d’une fonction de rappel.

Syntaxe

DWORD WINAPI SubscribeServiceChangeNotifications(
  _In_     SC_HANDLE                     hService,
  _In_     SC_EVENT_TYPE                 eEventType,
  _In_     PSC_NOTIFICATION_CALLBACK     pCallback,
  _In_opt_ PVOID                         pCallbackContext,
  _Out_    PSC_NOTIFICATION_REGISTRATION *pSubscription
);

Paramètres

hService [ dans]

Un handle vers le service ou un handle vers le gestionnaire de contrôle des services (SCM) pour surveiller les modifications.

Les handles vers les services sont retournés par les fonctions OpenService et CreateService et doivent disposer du droit d’accès _ _ État de la requête de service. Les handles du gestionnaire de contrôle des services sont retournés par la fonction OpenSCManager et doivent disposer du droit d' _ _ énumérer _ l’accès au service du gestionnaire SC.

eEventType [ dans]

Spécifie le type de modification d’État qui doit être signalé. Ce paramètre est défini sur l’une des valeurs spécifiées dans le _ _ type d’événement SC. Le comportement de cette fonction est différent selon le type d’événement, comme indiqué ci-dessous.

Valeur Signification
SC _ _ _ Modification de la base de données d’événements
0
Un service a été ajouté ou supprimé. Le paramètre hService doit être un handle vers le SCM.
SC _ _ _ Modification
de la propriété d’événement
1
Une ou plusieurs propriétés de service ont été mises à jour. Le paramètre hService doit être un handle vers le service.
SC _ _ _ Modification
de l’état de l’événement
2
L’état d’un service a changé. Le paramètre hService doit être un handle vers le service.

pCallback [ dans]

Spécifie la fonction de rappel. Le rappel doit être défini comme ayant un type de _ _ rappel de notification SC. Pour plus d'informations, consultez la section Notes.

pCallbackContext [ dans, facultatif]

Pointeur représentant le contexte de ce rappel de notification.

pSubscription [ à]

Retourne un pointeur vers l’abonnement résultant de l’inscription du rappel de notification. L’appelant est chargé d’appeler UnsubscribeServiceChangeNotifications pour cesser de recevoir des notifications.

Valeur retournée

Si la fonction réussit, la valeur de retour est une erreur de _ réussite.

Si la fonction échoue, la valeur de retour est l’un des codes d’erreur système.

Remarques

La fonction de rappel est déclarée comme suit :

typedef VOID CALLBACK SC_NOTIFICATION_CALLBACK(
    _In_    DWORD                   dwNotify,
    _In_    PVOID                   pCallbackContext
);
typedef SC_NOTIFICATION_CALLBACK* PSC_NOTIFICATION_CALLBACK;

La fonction de rappel reçoit un pointeur vers le contexte fourni par l’appelant. Le rappel est appelé à la suite de l’événement de modification de l’état du service. Lorsque le rappel est appelé, il est fourni avec un masque de révocation de service _ notification _ * xxx* qui indique le type de modification de l’état du service. Lorsque le rappel est fourni avec zéro au lieu d’une valeur de service _ Notify _ * xxx* valide, l’application doit vérifier ce qui a été modifié.

La fonction de rappel ne doit pas bloquer l’exécution. Si vous vous attendez à ce que l’exécution de la fonction de rappel prenne du temps, déchargez le travail que vous effectuez dans la fonction de rappel vers un thread distinct en mettant en file d’attente un élément de travail vers un thread dans un pool de threads. Certains types de travail qui peuvent rendre la fonction de rappel prend du temps incluent l’exécution d’e/s de fichier, l’attente d’un événement et l’exécution d’appels de procédure distante externes.

Configuration requise

Condition requise Valeur
Client minimal pris en charge
Windows 8 [ applications de bureau uniquement]
Serveur minimal pris en charge
Windows Server 2012 [ applications de bureau uniquement]
En-tête
Winsvcp. h
DLL
SecHost.dll

Voir aussi

CreateService

OpenService

OpenSCManager

UnsubscribeServiceChangeNotifications

QueryServiceDynamicInformation