OpenServiceA 함수(winsvc.h)
기존 서비스를 엽니다.
통사론
SC_HANDLE OpenServiceA(
[in] SC_HANDLE hSCManager,
[in] LPCSTR lpServiceName,
[in] DWORD dwDesiredAccess
);
매개 변수
[in] hSCManager
서비스 제어 관리자 데이터베이스에 대한 핸들입니다. OpenSCManager 함수는 이 핸들을 반환합니다. 자세한 내용은 Service Security and Access Rights참조하세요.
[in] lpServiceName
열 서비스의 이름입니다. 이는 서비스 개체를 만들 때 CreateService 함수의 lpServiceName 매개 변수로 지정된 이름이며, 서비스를 식별하기 위해 사용자 인터페이스 애플리케이션에서 표시하는 서비스 표시 이름이 아닙니다.
최대 문자열 길이는 256자입니다. 서비스 제어 관리자 데이터베이스는 문자의 대/소문자를 유지하지만 서비스 이름 비교는 항상 대/소문자를 구분하지 않습니다. 슬래시(/) 및 백슬래시(\)가 잘못된 서비스 이름 문자입니다.
[in] dwDesiredAccess
서비스에 대한 액세스입니다. 액세스 권한 목록은 서비스 보안 및 액세스 권한참조하세요.
요청된 액세스 권한을 부여하기 전에 시스템은 서비스 개체와 연결된 보안 설명자의 임의 액세스 제어 목록에 대해 호출 프로세스의 액세스 토큰을 확인합니다.
반환 값
함수가 성공하면 반환 값은 서비스에 대한 핸들입니다.
함수가 실패하면 반환 값은 NULL입니다. 확장 오류 정보를 얻으려면 GetLastError호출합니다.
서비스 제어 관리자에서 다음 오류 코드를 설정할 수 있습니다. 다른 항목은 서비스 제어 관리자가 호출하는 레지스트리 함수에서 설정할 수 있습니다.
반환 코드 | 묘사 |
---|---|
|
핸들에 서비스에 대한 액세스 권한이 없습니다. |
|
지정한 핸들이 잘못되었습니다. |
|
지정한 서비스 이름이 잘못되었습니다. |
|
지정된 서비스가 없습니다. |
발언
반환된 핸들은 OpenService호출한 프로세스에만 유효합니다. CloseServiceHandle 함수를 호출하여 닫을 수 있습니다.
openService
예제
예제는 서비스시작을 참조하세요.
메모
winsvc.h 헤더는 OPENService를 UNICODE 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입대한
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | winsvc.h(Windows.h 포함) |
라이브러리 | Advapi32.lib |
DLL | Advapi32.dll |
참고 항목
ChangeServiceConfig
CloseServiceHandle
ControlService
CreateService
DeleteService
OpenSCManager
QueryServiceConfig
QueryServiceDynamicInformation
QueryServiceObjectSecurity
QueryServiceStatusEx
SetServiceObjectSecurity