KdDeregisterPowerHandler
NTSTATUS __stdcall KdDeregisterPowerHandler(PVOID CallbackHandle){
unsigned __int8 CurrentIrql;
__int64 *v3;
__int64 *v4;
char v5;
__int64 *v6;
__int64 **v8;
CurrentIrql = KeGetCurrentIrql();
__writecr8(0xFui64);
KxAcquireSpinLock(&KdpPowerSpinLock);
v3 = (__int64 *)KdpPowerListHead;
v4 = 0i64;
v5 = 0;
if( (__int64 *)KdpPowerListHead != &KdpPowerListHead )
{
while( 1 )
{
v6 = (__int64 *)*v3;
v4 = v3;
if( CallbackHandle == v3 )
break;
v3 = (__int64 *)*v3;
if( v6 == &KdpPowerListHead )
goto LABEL_4;
}
v8 = (__int64 **)v3[1];
if( (__int64 *)v6[1] != v3 || *v8 != v3 )
__fastfail(3u);
*v8 = v6;
v5 = 1;
v6[1] = (__int64)v8;
}
LABEL_4:
KxReleaseSpinLock(&KdpPowerSpinLock);
__writecr8(CurrentIrql);
if( !v5 )
return -1073741275;
ExFreePoolWithTag(v4, 0x6F49644Bu);
return 0;
}Referenced by:
No references.