QUERY_SERVICE_CONFIGA 구조체(winsvc.h)

설치된 서비스에 대한 구성 정보를 포함합니다. QueryServiceConfig 함수에서 사용됩니다.

구문

typedef struct _QUERY_SERVICE_CONFIGA {
  DWORD dwServiceType;
  DWORD dwStartType;
  DWORD dwErrorControl;
  LPSTR lpBinaryPathName;
  LPSTR lpLoadOrderGroup;
  DWORD dwTagId;
  LPSTR lpDependencies;
  LPSTR lpServiceStartName;
  LPSTR lpDisplayName;
} QUERY_SERVICE_CONFIGA, *LPQUERY_SERVICE_CONFIGA;

멤버

dwServiceType

서비스의 유형입니다. 이 멤버는 다음 값 중 하나일 수 있습니다.

의미
SERVICE_FILE_SYSTEM_DRIVER
0x00000002
파일 시스템 드라이버 서비스.
SERVICE_KERNEL_DRIVER
0x00000001
드라이버 서비스.
SERVICE_WIN32_OWN_PROCESS
0x00000010
자체 프로세스에서 실행되는 서비스입니다.
SERVICE_WIN32_SHARE_PROCESS
0x00000020
프로세스를 다른 서비스와 공유하는 서비스입니다.
 

값이 SERVICE_WIN32_OWN_PROCESS 또는 SERVICE_WIN32_SHARE_PROCESSLocalSystem 계정의 컨텍스트에서 서비스가 실행되는 경우 다음 형식도 지정할 수 있습니다.

의미
SERVICE_INTERACTIVE_PROCESS
0x00000100
서비스는 데스크톱과 상호 작용할 수 있습니다.

자세한 내용은 Interactive Services를 참조하세요.

dwStartType

서비스를 시작하는 시기입니다. 이 멤버는 다음 값 중 하나일 수 있습니다.

의미
SERVICE_AUTO_START
0x00000002
시스템 시작 중에 서비스 제어 관리자가 자동으로 시작하는 서비스입니다.
SERVICE_BOOT_START
0x00000000
시스템 로더에서 시작한 디바이스 드라이버입니다. 이 값은 드라이버 서비스에 대해서만 유효합니다.
SERVICE_DEMAND_START
0x00000003
프로세스에서 StartService 함수를 호출할 때 서비스 제어 관리자가 시작한 서비스입니다.
SERVICE_DISABLED
0x00000004
시작할 수 없는 서비스입니다. 서비스를 시작하려고 하면 오류 코드 가 ERROR_SERVICE_DISABLED.
SERVICE_SYSTEM_START
0x00000001
IoInitSystem 함수로 시작된 디바이스 드라이버입니다. 이 값은 드라이버 서비스에 대해서만 유효합니다.

dwErrorControl

이 서비스를 시작하지 못하는 경우 오류의 심각도 및 수행된 작업입니다. 이 멤버는 다음 값 중 하나일 수 있습니다.

의미
SERVICE_ERROR_CRITICAL
0x00000003
가능한 경우 시작 프로그램은 이벤트 로그에 오류를 기록합니다. 마지막으로 알려진 양수 구성이 시작되면 시작 작업이 실패합니다. 그렇지 않으면 시스템이 마지막으로 알려진 양수 구성으로 다시 시작됩니다.
SERVICE_ERROR_IGNORE
0x00000000
시작 프로그램은 오류를 무시하고 시작 작업을 계속합니다.
SERVICE_ERROR_NORMAL
0x00000001
시작 프로그램은 이벤트 로그에 오류를 기록하고 시작 작업을 계속합니다.
SERVICE_ERROR_SEVERE
0x00000002
시작 프로그램은 이벤트 로그에 오류를 기록합니다. 마지막으로 알려진 양수 구성이 시작되면 시작 작업이 계속됩니다. 그렇지 않으면 시스템이 마지막으로 알려진 양수 구성으로 다시 시작됩니다.

lpBinaryPathName

서비스 이진 파일에 대한 정규화된 경로입니다.

경로에는 자동 시작 서비스에 대한 인수도 포함될 수 있습니다. 이러한 인수는 서비스 진입점(일반적으로 기본 함수)에 전달됩니다.

lpLoadOrderGroup

이 서비스가 속한 부하 순서 그룹의 이름입니다. 멤버가 NULL이거나 빈 문자열인 경우 서비스는 로드 순서 그룹에 속하지 않습니다.

시작 프로그램은 부하 순서 그룹을 사용하여 다른 그룹과 관련하여 지정된 순서로 서비스 그룹을 로드합니다. 부하 순서 그룹 목록은 다음 레지스트리 값에 포함되어 있습니다.

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ServiceGroupOrder

dwTagId

lpLoadOrderGroup 매개 변수로 지정된 그룹에서 이 서비스에 대한 고유 태그 값입니다. 값이 0이면 서비스에 태그가 할당되지 않았습니다. 다음 위치에 있는 레지스트리에서 태그 순서 벡터를 지정하여 부하 순서 그룹 내에서 서비스 시작 순서 지정에 태그를 사용할 수 있습니다.

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GroupOrderList

태그는 SERVICE_BOOT_START 또는 SERVICE_SYSTEM_START 시작 형식이 있는 SERVICE_KERNEL_DRIVERSERVICE_FILE_SYSTEM_DRIVER 형식 서비스에 대해서만 평가됩니다.

lpDependencies

이 서비스 전에 시작해야 하는 null로 구분된 서비스 이름 또는 로드 순서 그룹 배열에 대한 포인터입니다. 배열은 이중 null로 종료됩니다. 포인터가 NULL 이거나 빈 문자열을 가리키는 경우 서비스에 종속성이 없습니다. 그룹 이름을 지정하는 경우 서비스 및 서비스 그룹이 동일한 이름 공간을 공유하기 때문에 서비스 이름과 구분하려면 SC_GROUP_IDENTIFIER (WinSvc.h에 정의됨) 문자 앞에 접두사를 지정해야 합니다. 서비스에 대한 종속성은 종속된 서비스가 실행 중인 경우에만 이 서비스를 실행할 수 있음을 의미합니다. 그룹에 대한 종속성은 그룹의 모든 멤버를 시작하는 시도 후 그룹의 구성원 중 하나 이상이 실행되는 경우 이 서비스를 실행할 수 있음을 의미합니다.

lpServiceStartName

서비스 유형이 SERVICE_WIN32_OWN_PROCESS 또는 SERVICE_WIN32_SHARE_PROCESS 경우 이 멤버는 서비스 프로세스가 실행될 때 로 로그온되는 계정의 이름입니다. 이 이름은 Domain\UserName 형식일 수 있습니다. 계정이 기본 제공 도메인에 속하는 경우 이름은 .\UserName 형식일 수 있습니다. 프로세스가 LocalSystem 계정으로 실행되는 경우 이름은 "LocalSystem"일 수도 있습니다.

서비스 유형이 SERVICE_KERNEL_DRIVER 또는 SERVICE_FILE_SYSTEM_DRIVER 경우 이 멤버는 입력 및 출력(I/O) 시스템에서 디바이스 드라이버를 로드하는 데 사용하는 드라이버 개체 이름(즉, \FileSystem\Rdr 또는 \Driver\Xns)입니다. 이 멤버가 NULL인 경우 드라이버가 서비스 이름에 따라 I/O 시스템에서 만든 기본 개체 이름으로 실행되어야 합니다.

lpDisplayName

서비스 제어 프로그램에서 서비스를 식별하는 데 사용할 표시 이름입니다. 이 문자열의 최대 길이는 256자입니다. 이름은 서비스 제어 관리자에서 대/소문자를 유지합니다. 표시 이름 비교는 항상 대/소문자를 구분하지 않습니다.

이 매개 변수는 다음 형식을 사용하여 지역화된 문자열을 지정할 수 있습니다.

@[Path]DLLName,-StrID

식별자 StrID 가 있는 문자열은 DLLName에서 로드됩니다. 경로 는 선택 사항입니다. 자세한 내용은 RegLoadMUIString을 참조하세요.

Windows Server 2003 및 Windows XP: 지역화된 문자열은 Windows Vista까지 지원되지 않습니다.

설명

서비스에 대한 구성 정보는 서비스가 CreateService 함수에 대한 호출에 의해 생성될 때 처음에 지정됩니다. ChangeServiceConfig 함수를 호출하여 정보를 수정할 수 있습니다.

예제

예제는 서비스 구성 쿼리를 참조하세요.

참고

winsvc.h 헤더는 QUERY_SERVICE_CONFIG 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
머리글 winsvc.h(Windows.h 포함)

추가 정보

ChangeServiceConfig

CreateService

QueryServiceConfig

StartService