NtUnsubscribeWnfStateChange
NTSTATUS __stdcall NtUnsubscribeWnfStateChange(_WNF_STATE_NAME *StateName){
_ETHREAD *CurrentThread;
__int64 v2;
_WNF_PROCESS_CONTEXT *v3;
NTSTATUS v5;
_WNF_STATE_NAME_STRUCT InternalStateName;
PVOID P;
P = 0i64;
InternalStateName = 0i64;
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
--*((_WORD *)CurrentThread + 242);
v5 = ExpCaptureWnfStateName(StateName, &InternalStateName, *((_BYTE *)KeGetCurrentThread() + 562));
if( v5 >= 0 )
{
v2 = *((_QWORD *)KeGetCurrentThread() + 23);
v3 = *(_WNF_PROCESS_CONTEXT **)(v2 + 2152);
if( v3 )
{
v5 = ExpWnfAcquireSubscriptionByName(InternalStateName, v3, (_WNF_SUBSCRIPTION **)&P);
if( v5 >= 0 )
{
ExpWnfDeleteSubscription(P, (_EPROCESS *)v2);
v5 = 0;
}
}
else
{
v5 = -1073741772;
}
}
KeLeaveCriticalRegionThread((__int64)KeGetCurrentThread());
return v5;
}Referenced by:
No references.