DsRestoreGetDatabaseLocations function

[This function is available for use in the operating systems specified in the Requirements section. It may be altered or unavailable in subsequent versions. Beginning with Windows Vista, use Volume Shadow Copy Service (VSS) instead.]

The DsRestoreGetDatabaseLocations function obtains the locations where backup files should be copied during a restore operation.

Syntax

HRESULT DsRestoreGetDatabaseLocations(
  _In_  HBC     hbc,
  _Out_ LPWSTR  *pszDatabaseLocationList,
  _Out_ LPDWORD pcbSize
);

Parameters

hbc [in]

Contains the restoration context handle obtained with the DsRestorePrepare function.

pszDatabaseLocationList [out]

Pointer to a string pointer that receives the list of database locations as UNC paths. This list receives a double null-terminated list of single null-terminated strings.

This buffer is allocated by the DsRestoreGetDatabaseLocations function and must be freed when it is no longer required by calling the DsBackupFree function.

The first character of each of the file names contains one of the BFT Constants that identifies the name type. The DsRestoreGetDatabaseLocations function only supplies the following name types.

BFT_NTDS_DATABASE

The NTDS database file should be copied to this file. This is the file that was identified as BFT_NTDS_DATABASE when the backup was performed.

BFT_LOG_DIR

All log files are copied to this directory. The log files were identified as BFT_LOG when the backup was performed.

BFT_CHECKPOINT_DIR

All patch files are copied to this directory. The patch files were identified as BFT_PATCH_FILE when the backup was performed.

pcbSize [out]

Pointer to DWORD value that receives the size, in bytes, of the pszDatabaseLocationList buffer.

Return value

Returns S_OK if the function is successful or a Win32 or RPC error code otherwise. The following list lists possible error codes.

ERROR_ACCESS_DENIED

The caller does not have the proper access privileges to call this function. The DsSetAuthIdentity function can be used to set the credentials to use for the backup and restore functions.

ERROR_INVALID_PARAMETER

hbc, pszDatabaseLocationList, or pcbSize are invalid.

ERROR_NOT_ENOUGH_MEMORY

A memory allocation failure occurred.

Remarks

The DsRestoreGetDatabaseLocations function can be used to obtain the restoration directories without access to the backed up data. To do this, call DsRestorePrepare with NULL for the pvExpiryToken parameter. This causes DsRestorePrepare to return a restricted context handle which can only be used with the DsRestoreGetDatabaseLocations function.

Requirements

Requirement Value
Minimum supported client
Windows Vista
Minimum supported server
Windows Server 2008
Header
Ntdsbcli.h
Library
Ntdsbcli.lib
DLL
Ntdsbcli.dll
Unicode and ANSI names
DsRestoreGetDatabaseLocationsW (Unicode) and DsRestoreGetDatabaseLocationsA (ANSI)

See also

DsRestorePrepare

DsBackupFree

Directory Backup Functions

Restoring Active Directory