SetCatalogState function (ntquery.h)
Note
Indexing Service is no longer supported as of Windows XP and is unavailable for use as of Windows 8. Instead, use Windows Search for client side search and Microsoft Search Server Express for server side search.
Sets the catalog state for backup or other purposes.
Syntax
HRESULT SetCatalogState(
WCHAR const *pwcsCat,
WCHAR const *pwcsMachine,
DWORD dwNewState,
DWORD *pdwOldState
);
Parameters
pwcsCat
A pointer to the name of the catalog, for example, L"system" or L"Web".
pwcsMachine
A pointer to the name of the computer where the catalog exists; for example, L"." for the local computer.
dwNewState
The state of the catalog. See CICAT_* Constants.
pdwOldState
A pointer to a value that receives one of the CICAT_* constants that reflects the current state of the catalog.
Return value
This function can return one of these values.
Return code | Description |
---|---|
|
The operation was completed successfully. |
|
The function received an invalid parameter. |
|
The function failed because either the catalog or the computer was not found. |
|
The function failed because Indexing Service is not running. |
|
The function failed because Indexing Service is too busy. |
Remarks
A catalog can be read-only if any of the following conditions exist:
- The value of the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ContentIndex\Catalogs\<catalog name>\IsReadOnly registry entry is set to 1.
- The catalog is on a write-protected volume.
- The catalog, specifically the file cicat.hsh, is read-only.
If any of the preceding conditions exist and the CICAT_WRITABLE bit is set, it does not have the desired effect and the catalog is opened read-only.
If the dwNewState parameter contains CICAT_NO_QUERY, the system checks to see whether the catalog can be set to a writable state. If any of the preceding conditions exist that prevent the catalog from being writable, the catalog remains read-only and the pdwOldState parameter returns CICAT_READONLY. However, because the intention of the flag is to halt querying, the catalog stops accepting queries even though it is in this read-only state.
Specifically, if you make the call:
SetCatalogState("System", ".", CICAT_NO_QUERY, &OldState);
the value of the pdwOldState parameter on return will contain CICAT_NO_QUERY in addition to CI_CAT_WRITABLE or CI_CAT_READONLY values, depending on the READONLY/WRITABLE attributes of the volume or file.
If you make the call to SetCatalogState, where the dwNewState parameter is any value other than CICAT_NO_QUERY, then the value of the pdwOldState parameter on return will contain one of the mutually exclusive CICAT_ constants (excluding CICAT_NO_QUERY and CICAT_GET_STATE) which reflects the current state of the catalog.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows 2000 Professional [desktop apps only] |
Minimum supported server | Windows 2000 Server [desktop apps only] |
Target Platform | Windows |
Header | ntquery.h |
Library | Ntquery.lib |
DLL | Ntquery.dll |