다음을 통해 공유


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

추가 정보

RegisterServiceCtrlHandler

GetSharedServiceDirectory

SERVICE_SID_INFO