QueryServiceConfigA 함수(winsvc.h)
지정된 서비스의 구성 매개 변수를 검색합니다. 선택적 구성 매개 변수는 QueryServiceConfig2 함수를 사용하여 사용할 수 있습니다.
구문
BOOL QueryServiceConfigA(
[in] SC_HANDLE hService,
[out, optional] LPQUERY_SERVICE_CONFIGA lpServiceConfig,
[in] DWORD cbBufSize,
[out] LPDWORD pcbBytesNeeded
);
매개 변수
[in] hService
서비스에 대한 핸들입니다. 이 핸들은 OpenService 또는 CreateService 함수에서 반환되며 SERVICE_QUERY_CONFIG 액세스 권한이 있어야 합니다. 자세한 내용은 서비스 보안 및 액세스 권한을 참조하세요.
[out, optional] lpServiceConfig
서비스 구성 정보를 수신하는 버퍼에 대한 포인터입니다. 데이터 형식은 QUERY_SERVICE_CONFIG 구조입니다.
이 배열의 최대 크기는 8K바이트입니다. 필요한 크기를 확인하려면 이 매개 변수에 NULL을 지정하고 cbBufSize 매개 변수에 대해 0을 지정합니다. 함수가 실패하고 GetLastError 가 ERROR_INSUFFICIENT_BUFFER 반환합니다. pcbBytesNeeded 매개 변수는 필요한 크기를 받습니다.
[in] cbBufSize
lpServiceConfig 매개 변수가 가리키는 버퍼의 크기(바이트)입니다.
[out] pcbBytesNeeded
함수가 ERROR_INSUFFICIENT_BUFFER 함께 실패하는 경우 모든 구성 정보를 저장하는 데 필요한 바이트 수를 수신하는 변수에 대한 포인터입니다.
반환 값
함수가 성공하면 반환 값이 0이 아닙니다.
함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.
서비스 제어 관리자가 설정할 수 있는 오류 코드는 다음과 같습니다. 다른 함수는 서비스 제어 관리자가 호출하는 레지스트리 함수에 의해 설정할 수 있습니다.
반환 코드 | 설명 |
---|---|
|
핸들에 SERVICE_QUERY_CONFIG 액세스 권한이 없습니다. |
|
lpServiceConfig 버퍼에 맞는 것보다 더 많은 서비스 구성 정보가 있습니다. 모든 정보를 가져오는 데 필요한 바이트 수는 pcbBytesNeeded 매개 변수에 반환됩니다. lpServiceConfig에 아무 것도 기록되지 않습니다. |
|
지정한 핸들이 잘못되었습니다. |
설명
QueryServiceConfig 함수는 특정 서비스에 대해 레지스트리에 보관된 서비스 구성 정보를 반환합니다. 이 구성 정보는 CreateService 함수를 사용하여 서비스 제어 프로그램에서 먼저 설정합니다. 이 정보는 ChangeServiceConfig 함수를 사용하여 서비스 구성 프로그램에 의해 업데이트되었을 수 있습니다.
구성 정보가 마지막으로 변경되었을 때 서비스가 실행 중이면 QueryServiceConfig 에서 반환된 정보는 서비스의 현재 구성을 반영하지 않습니다. 대신 다음 실행 시 서비스의 구성을 반영합니다. DisplayName 키는 예외입니다. DisplayName 키가 변경되면 서비스가 실행 중인지 여부에 관계없이 즉시 적용됩니다.
예제
예제는 서비스 구성 쿼리를 참조하세요.
참고
winsvc.h 헤더는 QUERYServiceConfig를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | winsvc.h(Windows.h 포함) |
라이브러리 | Advapi32.lib |
DLL | Advapi32.dll |