ExpWorkQueueDestroy
VOID __stdcall ExpWorkQueueDestroy(PVOID Object){
signed __int32 v2;
signed __int32 v3;
__int16 v4;
struct _KEVENT Event;
memset(&Event, 0, sizeof(Event));
KeInitializeEvent(&Event, NotificationEvent, 0);
*((_QWORD *)Object + 91) = &Event;
_m_prefetchw((char *)Object + 712);
v2 = *((_DWORD *)Object + 178);
do
{
v3 = v2;
v2 = _InterlockedCompareExchange((volatile signed __int32 *)Object + 178, v2 | 0x8000, v2);
}
while( v3 != v2 );
v4 = v2;
KeRundownPriQueue(Object);
if( (v4 & 0x3FFF) != 0 )
KeWaitForSingleObject(*((PVOID *)Object + 91), Executive, 0, 0, 0i64);
}Referenced by:
ExpPartitionCreatePoolInternal
ExpPartitionDestroy