Функция EnumServicesStatusEx перечисляет службы в указанной базе данных диспетчера управления службами. Имя и состояние каждой службы предоставляются, наряду с дополнительными данными, основанными на указанном информационном уровне.
Сиснтаксис
BOOL EnumServicesStatusEx( SC_HANDLE hSCManager, SC_ENUM_TYPE InfoLevel, DWORD dwServiceType, DWORD dwServiceState, LPBYTE lpServices, DWORD cbBufSize, LPDWORD pcbBytesNeeded, LPDWORD lpServicesReturned, LPDWORD lpResumeHandle, LPCTSTR pszGroupName ); |
Параметры
В настоящее время, никакие другие информационные уровни не определены.
dwServiceType
[in] Тип перечисляемых служб. Этот параметр может быть одно или несколько следующих значений.Значение | Предназначение |
---|---|
SERVICE_DRIVER | Перечисляет службы типа SERVICE_KERNEL_DRIVER и SERVICE_FILE_SYSTEM_DRIVER. |
SERVICE_WIN32 | Перечисляет службы типа SERVICE_WIN32_OWN_PROCESS и SERVICE_WIN32_SHARE_PROCESS. |
dwServiceState
[in] Состояние служб, которые будут перечислены. Этот параметр может быть одним из следующих значений.Значение | Предназначение |
---|---|
SERVICE_ACTIVE | Перечисляет службы, которые находятся в следующих состояниях: SERVICE_START_PENDING, SERVICE_STOP_PENDING, SERVICE_RUNNING, SERVICE_CONTINUE_PENDING, SERVICE_PAUSE_PENDING и SERVICE_PAUSED. |
SERVICE_INACTIVE | Перечисляет службы, которые находятся в состоянии SERVICE_STOPPED. |
SERVICE_STATE_ALL | Комбинирует состояния SERVICE_INACTIVE и SERVICE_ACTIVE. |
lpServices
[out] Указатель на буфер, который получает информацию о статусе. Формат этих данных зависит от значения параметра InfoLevel.Максимальный размер этого массива - 64 КБ. Чтобы определять необходимый размер, задайте значение ПУСТО (NULL) для этого параметра и 0 для параметра cbBufSize. Функция завершится ошибкой, а GetLastError возвратит ERROR_MORE_DATA. Параметр pcbBytesNeeded получит необходимый размер.
cbBufSize
[in] Размер буфера, на который указывает параметр lpServices, в байтах.pcbBytesNeeded
[out] Указатель на переменную, которая получает число байтов, необходимых, чтобы возвратить остающиеся сервисные записи, если буфер является слишком маленьким.lpServicesReturned
[out] Указатель на переменную, которая получает число возвращаемых сервисных записей.lpResumeHandle
[in, out] Указатель на переменную, которая, при вводе данных, задает отправную точку перечисления. Вы должны установить это значение в ноль в первый раз, когда вызывают функцию EnumServicesStatusEx. При выводе данных, это значение - ноль если функция завершается успешно. Однако, если функция возвращает значение ноль, а функция GetLastError возвращает ERROR_MORE_DATA, это значение указывает на следующую сервисную запись, которая будет прочитана, когда вызывают функцию EnumServicesStatusEx, чтобы извлечь дополнительные данные.pszGroupName
[in] Имя группы в очереди загрузки. Если этот параметр - строка, перечисляются только те службы, которые принадлежат группе, имя которой задано строкой. Если этот параметр - пустая строка, то перечисляются только службы, которые не являются членом какой-либо группы. Если этот параметр - значение ПУСТО (NULL), членство группы игнорируется и перечисляются все службы.Если функция завершается ошибкой, возвращаемое значение - нуль. Чтобы получить дополнительную информацию об ошибке, вызовите GetLastError. Могут возвратиться следующие ошибки.
Код возврата | Описание |
---|---|
ERROR_ACCESS_DENIED | Дескриптор не имеет права доступа SC_MANAGER_ENUMERATE_SERVICE. |
ERROR_MORE_DATA | Буфер является слишком маленьким. Не все данные в активной базе данных могли возвратиться. Параметр pcbBytesNeeded имеет в своем составе число байтов, из которых можно получить остающиеся записи. |
ERROR_INVALID_PARAMETER | Использовалось неправильное значение параметра. |
ERROR_INVALID_HANDLE | Дескриптор недействителен. |
ERROR_INVALID_LEVEL | Параметр InfoLevel имеет в своем составе не поддерживаемое значение. |
ERROR_SHUTDOWN_IN_PROGRESS | Система закрывается; эту функцию нельзя вызвать. |
Смотри также
Обзор Службы, Функции, используемые службами, ENUM_SERVICE_STATUS_PROCESS
Размещение и совместимость EnumServicesStatusEx |
||
К |
Windows XP |
Да |
л |
Windows 2000 Professional |
Да |
и |
Windows NT |
Нет |
е |
Windows Me |
Нет |
н |
Windows 98 |
Нет |
т |
Windows 95 |
Нет |
С |
Windows Server 2003 |
Да |
е | Windows 2000 Server | Да |
р | Windows NT Server | Нет |
в | ||
е | ||
р | ||
Используемая библиотека |
Advapi32.lib |
|
Используемая DLL | advapi32.dll | |
Заголовочный файл | ||
- объявлено в |
Winsvc.h |
|
- включено в |
Windows.h |
|
Unicode |
Реализуется как EnumServicesStatusExW (Unicode) и EnumServicesStatusExA (ANSI) |
|
Замечания по платформе |
Не имеется |