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 |
|
| DLL |
|