WdipSemDeleteTransitionalInstance
PSLIST_ENTRY __fastcall WdipSemDeleteTransitionalInstance(struct SLIST_ENTRY *a1){
_ETHREAD *CurrentThread;
_SLIST_ENTRY *Next;
struct SLIST_ENTRY **v4;
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
--*((_WORD *)CurrentThread + 242);
ExAcquirePushLockExclusiveEx((UINT64)&qword_140C1A3B8, 0i64);
Next = a1->Next;
if( *(&a1->Next->Next + 1) != a1 || (v4 = (struct SLIST_ENTRY **)*((_QWORD *)&a1->Next + 1), *v4 != a1) )
__fastfail(3u);
*v4 = Next;
*((_QWORD *)&Next->Next + 1) = v4;
--dword_140C1A3B0;
ExReleasePushLockEx((UINT64)&qword_140C1A3B8, 0i64);
KeLeaveCriticalRegionThread((__int64)KeGetCurrentThread());
return WdipSemFastFree(3i64, a1);
}Referenced by:
WdipSemDisableScenario
WdipSemEnableScenario
WdipTimeoutCheckRoutine