CmpReparseToVirtualPath
INT64 __fastcall CmpReparseToVirtualPath(
_CM_KEY_CONTROL_BLOCK *kcb,
_UNICODE_STRING *RemainingPath,
_UNICODE_STRING *FullVirtualPath){
struct _UNICODE_STRING *v3;
struct _UNICODE_STRING *v5;
INT64 result;
UINT8 v8;
WCHAR v9;
struct _UNICODE_STRING DestinationString;
DestinationString = 0i64;
v5 = v3;
RtlInitUnicodeString(&DestinationString, 0i64, (WCHAR)FullVirtualPath);
if( (*((_DWORD *)kcb + 46) & 0x800000) != 0
&& (result = CmRealKCBToVirtualPath((INT64)kcb, 0i64, (INT64)FullVirtualPath, &DestinationString), (int)result >= 0) )
{
v8 = CmpVirtualPathPresent(&DestinationString);
if( v8 )
{
*v5 = DestinationString;
RtlInitUnicodeString(&DestinationString, 0i64, v9);
v8 = 1;
}
}
else
{
v8 = 0;
}
if( DestinationString.Buffer )
RtlFreeAnsiString(&DestinationString);
LOBYTE(result) = v8;
return result;
}Referenced by:
CmKeyBodyRemapToVirtual
CmKeyBodyRemapToVirtualForEnum
CmKeyBodyReplicateToVirtual
CmpVEExecuteCreateLogic