PopCapabilityCheck
NTSTATUS __fastcall PopCapabilityCheck(
const WCHAR *CapabilityId,
INT64 a2,
INT64 a3,
INT64 a4,
INT64 a5,
INT64 a6,
INT64 a7,
INT64 a8){
__int64 v8;
char v9;
const WCHAR *v11;
__int64 v12;
__int64 v13;
char v14;
_UNICODE_STRING CapabilityName;
char HasCapability;
v9 = 0;
HasCapability = 0;
if( CapabilityId )
{
v11 = CapabilityId;
CapabilityName = 0i64;
v12 = 0x7FFFi64;
do
{
if( !*v11 )
break;
++v11;
--v12;
}
while( v12 );
v8 = -v12;
v13 = (0x7FFF - v12) & -(__int64)(v12 != 0);
if( v12 )
{
CapabilityName.Buffer = (wchar_t *)CapabilityId;
CapabilityName.Length = 2 * v13;
CapabilityName.MaximumLength = 2 * v13 + 2;
LODWORD(v8) = RtlCapabilityCheck(0i64, &CapabilityName, (UINT8 *)&HasCapability);
v14 = HasCapability;
if( (int)v8 < 0 )
v14 = 0;
v9 = v14;
}
}
LOBYTE(v8) = v9;
return v8;
}Referenced by:
NtPowerInformation