Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//+-------------------------------------------------------------------------
//
// File: query.cxx
//
// Contents: This module contains the functions which deal with queries
// basically, those which help us in getting from an entry path
// to a volume object Name.
//
// History: 24-May-1993 SudK Created.
//
//--------------------------------------------------------------------------
#include "headers.hxx"
#pragma hdrstop
#include "cdfsvol.hxx"
//+-------------------------------------------------------------------------
//
// Function: GetVolObjForPath,
//
// Synopsis: Given an entrypath it returns the volume object which has
// the exact same entry path on it.
//
// Arguments: [pwszEntryPath] -- The Entry Path is given here.
// [fExactMatch] -- If TRUE, then the volume object's entry path
// must match pwszEntryPath exactly.
// [ppwszVolFound] -- The appropriate vol obj name.
//
// Returns:
//
//--------------------------------------------------------------------------
DWORD GetVolObjForPath( IN PWSTR pwszEntryPath, IN BOOLEAN fExactMatch, OUT PWSTR *ppwszVolFound ) { PWCHAR pPrivatePrefix; ULONG ulen = wcslen(pwszEntryPath); DWORD dwErr;
if (pDfsmStorageDirectory == NULL) {
return ERROR_INVALID_PARAMETER;
}
//
// Get rid of a trailing backslash if there is one.
//
pPrivatePrefix = new WCHAR[ulen+1]; if (pPrivatePrefix != NULL) { wcscpy(pPrivatePrefix, pwszEntryPath); if (ulen >= 1 && pPrivatePrefix[ulen-1] == L'\\') pPrivatePrefix[ulen-1] = L'\0';
dwErr = pDfsmStorageDirectory->GetObjectForPrefix( pPrivatePrefix, fExactMatch, ppwszVolFound, &ulen);
delete [] pPrivatePrefix; } else { dwErr = ERROR_OUTOFMEMORY; }
return(dwErr);
}
|