CmFcpManagerSoftwareHiveReady
void __fastcall CmFcpManagerSoftwareHiveReady(__int64 a1){
_ETHREAD *CurrentThread;
_EX_PUSH_LOCK *v3;
char v4;
*(_BYTE *)(a1 + 336) = 1;
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
--CurrentThread->Tcb.KernelApcDisable;
v3 = (_EX_PUSH_LOCK *)(a1 + 328);
ExAcquirePushLockExclusiveEx((_EX_PUSH_LOCK *)(a1 + 328), 0i64);
CmFcpManagerDrainUsageNotifications((_EX_PUSH_LOCK *)a1, 0);
CmFcpManagerDrainUsageNotifications((_EX_PUSH_LOCK *)a1, 0);
v4 = _InterlockedExchangeAdd64(&v3->_bf_0, 0xFFFFFFFFFFFFFFFFui64);
if( (v4 & 2) != 0 && (v4 & 4) == 0 )
ExfTryToWakePushLock(v3);
KeAbPostRelease(v3);
KeLeaveCriticalRegionThread(KeGetCurrentThread());
}Referenced by:
No references.