Fonction EnumDependentServicesW (winsvc.h)
Récupère le nom et l’état de chaque service qui dépend du service spécifié ; autrement dit, le service spécifié doit être en cours d’exécution avant que les services dépendants puissent s’exécuter.
Syntaxe
BOOL EnumDependentServicesW(
[in] SC_HANDLE hService,
[in] DWORD dwServiceState,
[out, optional] LPENUM_SERVICE_STATUSW lpServices,
[in] DWORD cbBufSize,
[out] LPDWORD pcbBytesNeeded,
[out] LPDWORD lpServicesReturned
);
Paramètres
[in] hService
Handle vers le service. Ce handle est retourné par la fonction OpenService
[in] dwServiceState
État des services à énumérer. Ce paramètre peut être l’une des valeurs suivantes.
[out, optional] lpServices
Pointeur vers un tableau de structures ENUM_SERVICE_STATUS qui reçoit les informations de nom et d’état du service pour chaque service dépendant de la base de données. La mémoire tampon doit être suffisamment grande pour contenir les structures, ainsi que les chaînes auxquelles leurs membres pointent.
L’ordre des services dans ce tableau est l’inverse de l’ordre de début des services. En d’autres termes, le premier service du tableau est celui qui serait démarré en dernier, et le dernier service du tableau est celui qui serait démarré en premier.
La taille maximale de ce tableau est de 64 000 octets. Pour déterminer la taille requise, spécifiez NULL pour ce paramètre et 0 pour le paramètre cbBufSize. La fonction échoue et GetLastError retourne ERROR_MORE_DATA. Le paramètre de
[in] cbBufSize
Taille de la mémoire tampon pointée par le paramètre lpServices, en octets.
[out] pcbBytesNeeded
Pointeur vers une variable qui reçoit le nombre d’octets nécessaires pour stocker le tableau d’entrées de service. La variable reçoit uniquement cette valeur si la mémoire tampon pointée par lpServices est trop petite, indiquée par l’échec de la fonction et l’erreur ERROR_MORE_DATA ; sinon, le contenu de n’est pas défini.
[out] lpServicesReturned
Pointeur vers une variable qui reçoit le nombre d’entrées de service retournées.
Valeur de retour
Si la fonction réussit, la valeur de retour est différente de zéro.
Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations d’erreur étendues, appelez GetLastError.
Les codes d’erreur suivants peuvent être définis par le gestionnaire de contrôle de service. D’autres codes d’erreur peuvent être définis par les fonctions de Registre appelées par le gestionnaire de contrôle de service.
Retourner le code | Description |
---|---|
|
Le handle n’a pas le droit d’accès SERVICE_ENUMERATE_DEPENDENTS. |
|
Le handle spécifié n’est pas valide. |
|
Un paramètre spécifié n’est pas valide. |
|
La mémoire tampon pointée par lpServices n’est pas suffisamment grande. La fonction définit la variable pointée par lpServicesReturned au nombre réel d’entrées de service stockées dans la mémoire tampon. La fonction définit la variable pointée par bytesNeeded le nombre d’octets requis pour stocker toutes les entrées de service. |
Remarques
Les entrées des services retournés sont classées dans l’ordre inverse de l’ordre de début, avec l’ordre de groupe pris en compte. Si vous devez arrêter les services dépendants, vous pouvez utiliser l’ordre des entrées écrites dans la mémoire tampon lpServices pour arrêter les services dépendants dans l’ordre approprié.
Exemples
Pour obtenir un exemple, consultez arrêter un service.
Note
L’en-tête winsvc.h définit EnumDependentServices comme alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows XP [applications de bureau uniquement] |
serveur minimum pris en charge | Windows Server 2003 [applications de bureau uniquement] |
plateforme cible | Windows |
d’en-tête | winsvc.h (inclure Windows.h) |
bibliothèque | Advapi32.lib |
DLL | Advapi32.dll |