RtlQueryPackageClaims
NTSTATUS __stdcall RtlQueryPackageClaims(
VOID *TokenObject,
WCHAR *PackageFullName,
UINT64 *PackageSize,
WCHAR *AppId,
UINT64 *AppIdSize,
_GUID *DynamicId,
PS_PKG_CLAIM *PkgClaim,
UINT64 *AttributesPresent){
VOID *v12;
NTSTATUS result;
NTSTATUS v14;
UINT64 *v15;
_PS_PKG_CLAIM v16;
UINT64 dwFlags;
WCHAR *ppszDestEnd;
WCHAR *v19;
UINT64 *v20;
UINT64 pcbRemaining;
_PS_PKG_CLAIM v22[102];
v19 = 0i64;
v20 = AppIdSize;
memset(v22, 0i64, sizeof(v22));
ppszDestEnd = 0i64;
result = RtlpQueryPackageIdentityAttributes(TokenObject, v12, v22, PkgClaim, AttributesPresent);
v14 = result;
if( result < 0 )
return result;
if( PackageFullName )
{
if( PackageSize )
{
LODWORD(dwFlags) = 2048;
result = RtlStringCbPrintfExW(
PackageFullName,
*PackageSize,
&ppszDestEnd,
&pcbRemaining,
dwFlags,
(WCHAR *)L"%wZ");
v14 = result;
if( result < 0 )
return result;
*PackageSize = (char *)ppszDestEnd - (char *)PackageFullName + 2;
goto LABEL_7;
}
return -1073741811;
}
if( PackageSize )
return -1073741811;
LABEL_7:
if( AppId )
{
LODWORD(dwFlags) = 2048;
v15 = v20;
result = RtlStringCbPrintfExW(AppId, *v20, &v19, 0i64, dwFlags, (WCHAR *)L"%wZ");
v14 = result;
if( result < 0 )
return result;
*v15 = (char *)v19 - (char *)AppId + 2;
}
if( DynamicId )
{
v16 = v22[1];
*DynamicId = 0i64;
if( *(_DWORD *)(*(_QWORD *)&v16 + 24i64) > 3u )
RtlGUIDFromString((_UNICODE_STRING *)(*(_QWORD *)(*(_QWORD *)&v16 + 32i64) + 48i64), DynamicId);
}
return v14;
}Referenced by:
RtlQueryPackageIdentityEx
SepVerifyDesktopAppPolicyOverrideCaller