GetServiceDirectory 함수(winsvc.h)
서비스가 상태를 읽고/또는 쓸 서비스별 파일 시스템 위치에 대한 경로를 반환합니다.
구문
DWORD GetServiceDirectory(
SERVICE_STATUS_HANDLE hServiceStatus,
SERVICE_DIRECTORY_TYPE eDirectoryType,
PWCHAR lpPathBuffer,
DWORD cchPathBufferLength,
DWORD *lpcchRequiredBufferLength
);
매개 변수
hServiceStatus
현재 서비스의 상태 정보 구조에 대한 핸들입니다. 이 핸들은 RegisterServiceCtrlHandler 함수에 의해 반환됩니다.
eDirectoryType
검색할 서비스별 디렉터리 경로의 형식을 식별하는 SERVICE_DIRECTORY_TYPE 열거형의 멤버입니다.
lpPathBuffer
경로 문자열을 복사할 호출자가 할당한 버퍼입니다. NULL이면 함수 호출이 ERROR_INSUFFICIENT_BUFFER 실패하고 필요한 버퍼 길이( WCHAR)를 lpcchRequiredBufferLength로 반환합니다. NULL이 아닌 경우 버퍼의 길이를 cchPathBufferLength로 지정해야 합니다. 경로가 기록되면 NULL이 종료됩니다.
cchPathBufferLength
lpPathBuffer에 제공된 버퍼의 길이(WCHARS 단위)입니다. lpPathBuffer가 NULL인 경우 이 인수는 무시됩니다.
lpcchRequiredBufferLength
이 값은 WCHAR 단위로 버퍼의 필요한 길이로 설정됩니다. 이 길이에는 종료 NULL 문자가 포함됩니다.
반환 값
모든 작업이 성공적으로 완료되고 NULL 종료 상태 경로가 lpPathBuffer에 기록될 때 ERROR_SUCCESS 반환합니다. lpPathBuffer가 상태 경로를 포함할 만큼 크지 않거나 lpPathBuffer가 NULL인 경우 ERROR_INSUFFICIENT_BUFFER 반환합니다. 이 경우 WCHAR의 필요한 버퍼 길이는 lpcchRequiredBufferLength를 통해 반환됩니다. 다른 오류가 발생하면 Win32 오류 코드가 반환됩니다.
설명
ServiceDirectoryPersistentState의 경우 디렉터리의 보안은 로컬 시스템 계정 및 서비스 SID에 대한 쓰기 액세스만 제공하도록 설정됩니다. 이 API를 호출하는 모든 서비스에 대해 서비스 SID가 사용하도록 설정되어 있는지 확인합니다. 자세한 내용은 SERVICE_SID_INFO.
연결된 프로그램과 공유할 수 있는 서비스 상태를 제공하는 유사한 API는 GetSharedServiceDirectory를 참조하세요.
서비스가 제거되면 서비스 제어 관리자가 모든 서비스 상태 디렉터리를 삭제합니다.
요구 사항
지원되는 최소 클라이언트 | Windows 10 버전 2004(10.0; 빌드 19041) |
지원되는 최소 서버 | Windows Server 버전 2004(10.0; 빌드 19041) |
머리글 | winsvc.h |
라이브러리 | Onecore.lib |