PopPowerRequestCreateInfo
NTSTATUS __stdcall PopPowerRequestCreateInfo(
COUNTED_REASON_CONTEXT *CountedReasonContext,
UINT8 SpecialRequest,
PVOID *ReturnHandle){
void *v5;
NTSTATUS inserted;
int UserPowerRequest;
unsigned int *v8;
UINT64 v10;
void *Object[5];
INT64 v12;
PVOID Handle;
v12 = 0i64;
Handle = 0i64;
Object[0] = 0i64;
if( *((_BYTE *)KeGetCurrentThread() + 562) )
{
inserted = PoCaptureReasonContext((UINT64)CountedReasonContext, 1, 0i64, 1, 0i64, &v12);
if( inserted >= 0 )
{
v5 = (void *)v12;
UserPowerRequest = PopCreateUserPowerRequest((INT64 *)Object, SpecialRequest, v12);
v8 = (unsigned int *)Object[0];
inserted = UserPowerRequest;
if( UserPowerRequest >= 0 )
{
v5 = 0i64;
ObfReferenceObjectWithTag(Object[0], 0x72506F50u);
LODWORD(v10) = 0;
inserted = ObInsertObjectEx(v8, 0i64, 0i64, 0i64, v10, 0i64, &Handle);
if( inserted >= 0 )
PopNotifySessionUserPowerRequestCreated(v8[4], v8[7], (INT64)Handle);
}
if( v8 )
ObfDereferenceObjectWithTag(v8, 0x72506F50ui64);
}
else
{
v5 = 0i64;
}
}
else
{
v5 = (void *)v12;
inserted = -1073741637;
}
if( ReturnHandle )
*ReturnHandle = Handle;
if( v5 )
PoDestroyReasonContext(v5);
return inserted;
}Referenced by:
NtPowerInformation