다음을 통해 공유


SetCatalogState 함수(ntquery.h)

참고

인덱싱 서비스는 Windows XP를 기준으로 더 이상 지원되지 않으며 Windows 8 현재 사용할 수 없습니다. 대신 클라이언트 쪽 검색에 Windows Search 를 사용하고 서버 쪽 검색에 Microsoft Search Server Express 를 사용합니다.

백업 또는 기타 용도로 카탈로그 상태를 설정합니다.

구문

HRESULT SetCatalogState(
  WCHAR const *pwcsCat,
  WCHAR const *pwcsMachine,
  DWORD       dwNewState,
  DWORD       *pdwOldState
);

매개 변수

pwcsCat

카탈로그 이름(예: L"system" 또는 L"Web")에 대한 포인터입니다.

pwcsMachine

카탈로그가 있는 컴퓨터의 이름에 대한 포인터입니다. 예를 들어 로컬 컴퓨터의 경우 L"."입니다.

dwNewState

카탈로그의 상태입니다. CICAT_* 상수를 참조하세요.

pdwOldState

카탈로그의 현재 상태를 반영하는 CICAT_* 상수 중 하나를 수신하는 값에 대한 포인터입니다.

반환 값

이 함수는 이러한 값 중 하나를 반환할 수 있습니다.

반환 코드 Description
S_OK
작업이 성공적으로 완료되었습니다.
E_INVALIDARG
함수가 잘못된 매개 변수를 수신했습니다.
CI_E_NOT_FOUND
카탈로그 또는 컴퓨터를 찾을 수 없으므로 함수가 실패했습니다.
CI_E_NOT_RUNNING
인덱싱 서비스가 실행되고 있지 않아 함수가 실패했습니다.
CI_E_TIMEOUT
인덱싱 서비스가 너무 사용 중이므로 함수가 실패했습니다.

설명

카탈로그는 다음 조건이 있는 경우 읽기 전용일 수 있습니다.

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ContentIndex\Catalogs\<카탈로그 이름>\IsReadOnly 레지스트리 항목의 값은 1로 설정됩니다.
  • 카탈로그는 쓰기로 보호되는 볼륨에 있습니다.
  • 카탈로그, 특히 cicat.hsh 파일은 읽기 전용입니다.

이전 조건이 있고 CICAT_WRITABLE 비트가 설정된 경우 원하는 효과가 없으며 카탈로그가 읽기 전용으로 열립니다.

dwNewState 매개 변수에 CICAT_NO_QUERY 포함된 경우 시스템은 카탈로그를 쓰기 가능한 상태로 설정할 수 있는지 확인합니다. 카탈로그를 쓸 수 없는 이전 조건이 있으면 카탈로그는 읽기 전용으로 유지되고 pdwOldState 매개 변수는 CICAT_READONLY 반환합니다. 그러나 플래그의 의도는 쿼리를 중지하는 것이므로 카탈로그는 이 읽기 전용 상태에 있더라도 쿼리 수락을 중지합니다.

특히 다음을 호출하는 경우:

SetCatalogState("System", ".", CICAT_NO_QUERY, &OldState);

반환 시 pdwOldState 매개 변수의 값에는 볼륨 또는 파일의 READONLY/WRITABLE 특성에 따라 CI_CAT_WRITABLE 또는 CI_CAT_READONLY 값 외에 CICAT_NO_QUERY 포함됩니다.

dwNewState 매개 변수가 CICAT_NO_QUERY 이외의 값인 SetCatalogState를 호출하는 경우 반환 시 pdwOldState 매개 변수 값에는 카탈로그의 현재 상태를 반영하는 상호 배타적인 CICAT_ 상수(CICAT_NO_QUERY 및 CICAT_GET_STATE 제외)가 포함됩니다.

참고 인덱싱 서비스에 대해 net pause 명령 또는 net continue 명령을 실행하면 SetCatalogState 함수에서 설정한 상태 변경 내용이 유지되지 않습니다.
 
카탈로그 상태의 변경 예제는 Platform SDK 디렉터리 mssdk\samples\winbase\indexing\chgstate의 ChgState 샘플을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 ntquery.h
라이브러리 Ntquery.lib
DLL Ntquery.dll

추가 정보

LocateCatalogs