На главную

On-line справка по Win32 API

Написать письмо
БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО!
Список всех статей A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z | Скачать Вниз

Querying a Service's Configuration



In the following example, a service configuration program uses the OpenService function to get a handle with SERVICE_QUERY_CONFIG access to an installed service object. Then the program uses the service object handle in the QueryServiceConfig function to retrieve the current configuration of the service.

VOID GetSampleServiceConfig()
{
LPQUERY_SERVICE_CONFIG lpqscBuf;
DWORD dwBytesNeeded;

// Open a handle to the service.

schService = OpenService(
schSCManager, // SCManager database
TEXT("Sample_Srv"), // name of service
SERVICE_QUERY_CONFIG); // need QUERY access
if (schService == NULL)
MyErrorExit("OpenService");

// Allocate a buffer for the information configuration.


lpqscBuf = (LPQUERY_SERVICE_CONFIG) LocalAlloc(
LPTR, 4096);
if (lpqscBuf == NULL)
MyErrorExit("LocalAlloc");

// Get and print the information configuration.

if (! QueryServiceConfig(
schService,
lpqscBuf,
4096,
&dwBytesNeeded) )
{
MyErrorExit("QueryServiceConfig");
}

printf("\nSample_Srv configuration: \n");
printf(" Type: 0x%x\n", lpqscBuf->dwServiceType);

printf(" Start Type: 0x%x\n", lpqscBuf->dwStartType);
printf(" Err Control: 0x%x\n", lpqscBuf->dwErrorControl);
printf(" Binary path: %s\n", lpqscBuf->lpBinaryPathName);

if (lpqscBuf->lpLoadOrderGroup != NULL)
printf(" Load order group: %s\n",
lpqscBuf->lpLoadOrderGroup);
if (lpqscBuf->dwTagId != 0)
printf(" Tag ID: %d\n", lpqscBuf->dwTagId);
if (lpqscBuf->lpDependencies != NULL)
printf(" Dependencies: %s\n", lpqscBuf->lpDependencies);

if (lpqscBuf->lpServiceStartName != NULL)
printf(" Start Name: %s\n",
lpqscBuf->lpServiceStartName);

LocalFree(lpqscBuf);
}



Пригласи друзей и счет твоего мобильника всегда будет положительным!
Предыдущая статья
 
Сайт Народ.Ру Интернет
Следующая статья
Пригласи друзей и счет твоего мобильника всегда будет положительным!

Спрашивающая Конфигурация Услуги



В следующем примере, программа конфигурации услуги использует функцию OpenService, чтобы получать ручку с доступом SERVICE_QUERY_CONFIG ко включенному объекту услуги. Затем программа использует объектную ручку услуги в функции QueryServiceConfig, чтобы извлекать текущую конфигурацию услуги.

ПУСТОТА GetSampleServiceConfig()
{
LPQUERY_SERVICE_CONFIG lpqscBuf;
DWORD dwBytesNeeded;

// Откройте ручку в услугу.

schService = OpenService( schSCManager, // База данных ТЕКСТА SCManager("Sample_Srv"), // имя услуги SERVICE_QUERY_CONFIG); // нужно доступ ЗАПРОСА если (schService == НЕДЕЙСТВИТЕЛЬНЫЙ) MyErrorExit("OpenService");

// Распределите буфер для информационной конфигурации.


lpqscBuf = (LPQUERY_SERVICE_CONFIG) LocalAlloc( LPTR, 4096);
если (lpqscBuf == НЕДЕЙСТВИТЕЛЬНЫЙ) MyErrorExit("LocalAlloc");

// Получите и печатайте информационную конфигурацию.

если (! QueryServiceConfig( schService, lpqscBuf,
4096,
&dwBytesNeeded) )
{
MyErrorExit("QueryServiceConfig");
}

printf(конфигурация "\nSample_Srv: \n");
printf(" Тип: 0x%x\n", lpqscBuf->dwServiceType);

printf(" Стартовый Тип: 0x%x\n", lpqscBuf->dwStartType);
printf(" Управление Err: 0x%x\n", lpqscBuf->dwErrorControl);
printf(" путь Двоичного кода: %s\n", lpqscBuf->lpBinaryPathName);

если (lpqscBuf->lpLoadOrderGroup != НЕДЕЙСТВИТЕЛЬНЫЙ) printf(" группа порядка Загрузки: %s\n", lpqscBuf->lpLoadOrderGroup);
если (lpqscBuf->dwTagId != 0) printf(" Этикетка ID: %d\n", lpqscBuf->dwTagId);
если (lpqscBuf->lpDependencies != НЕДЕЙСТВИТЕЛЬНЫЙ) printf(" Зависимость: %s\n", lpqscBuf->lpDependencies);

если (lpqscBuf->lpServiceStartName != НЕДЕЙСТВИТЕЛЬНЫЙ) printf(" Стартовое Имя: %s\n", lpqscBuf->lpServiceStartName);

LocalFree(lpqscBuf);
}



Вверх Version 1.3, Oct 26 2010 © 2007, 2010, mrhx Вверх
 mrhx software  Русский перевод OpenGL  Русский перевод Win32 API
 
Используются технологии uCoz