Share via


GetSharedServiceDirectory 함수(winsvc.h)

서비스 및 관련 프로그램이 상태를 읽고/또는 쓸 수 있도록 서비스별 파일 시스템 위치에 대한 경로를 반환합니다.

구문

DWORD GetSharedServiceDirectory(
  SC_HANDLE                     ServiceHandle,
  SERVICE_SHARED_DIRECTORY_TYPE DirectoryType,
  PWCHAR                        PathBuffer,
  DWORD                         PathBufferLength,
  DWORD                         *RequiredBufferLength
);

매개 변수

ServiceHandle

서비스에 대한 핸들입니다. 이 핸들은 OpenService 함수에서 반환됩니다.

DirectoryType

검색할 서비스별 공유 디렉터리 경로의 형식을 식별하는 SERVICE_SHARED_DIRECTORY_TYPE 열거형의 멤버입니다.

PathBuffer

경로 문자열을 복사할 호출자가 할당한 버퍼입니다. NULL이면 ERROR_INSUFFICIENT_BUFFER 함수 호출이 실패하고 필요한 버퍼 길이(WCHAR)를 RequiredBufferLength로 반환합니다. NULL이 아닌 경우 버퍼의 길이를 PathBufferLength에 지정해야 합니다. 경로가 기록되면 NULL이 종료됩니다.

PathBufferLength

PathBuffer에 제공된 버퍼의 길이(WCHARS 단위)입니다. PathBuffer가 NULL인 경우 이 인수는 무시됩니다.

RequiredBufferLength

이 값은 WCHAR 단위로 버퍼의 필요한 길이로 설정됩니다. 이 길이에는 종료 NULL 문자가 포함됩니다.

반환 값

모든 작업이 성공적으로 완료되고 NULL로 종료된 상태 경로가 PathBuffer에 기록될 때 ERROR_SUCCESS 반환합니다. PathBuffer가 상태 경로를 포함할 만큼 크지 않거나 PathBuffer가 NULL인 경우 ERROR_INSUFFICIENT_BUFFER 반환합니다. 이 경우 WCHAR의 필수 버퍼 길이는 RequiredBufferLength를 통해 반환됩니다. 다른 오류가 발생하면 Win32 오류 코드가 반환됩니다.

설명

ServiceSharedDirectoryPersistentState의 경우 디렉터리의 보안은 로컬 시스템 계정, 서비스 SID 및 로컬 관리자에 대한 쓰기 액세스만 제공하도록 설정됩니다. 이 API를 호출하는 모든 서비스에 대해 서비스 SID가 사용하도록 설정되어 있는지 확인합니다. 자세한 내용은 SERVICE_SID_INFO.

서비스 자체에서 사용하기 위해 서비스 상태를 독점적으로 제공하는 유사한 API는 GetServiceDirectory를 참조하세요.

서비스가 제거되면 서비스 제어 관리자가 모든 서비스 상태 디렉터리를 삭제합니다.

요구 사항

   
지원되는 최소 클라이언트 Windows 11(빌드 22000)
지원되는 최소 서버 Windows Server 2022(빌드 20348)
머리글 winsvc.h
라이브러리 Onecore.lib

추가 정보

OpenService

GetServiceDirectory

SERVICE_SID_INFO