AlpciDestroyDeferredMessageContext
_ETHREAD *__fastcall AlpciDestroyDeferredMessageContext(struct _DMA_ADAPTER **a1){
_ETHREAD *CurrentThread;
struct _DMA_ADAPTER *v3;
struct _DMA_ADAPTER *v4;
_ETHREAD *result;
bool v6;
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
--*((_WORD *)CurrentThread + 242);
v3 = *a1;
if( v3 )
{
HalPutDmaAdapter(v3);
*a1 = 0i64;
}
v4 = a1[1];
if( v4 )
{
HalPutDmaAdapter(v4);
a1[1] = 0i64;
}
result = (_ETHREAD *)KeGetCurrentThread();
v6 = (*((_WORD *)result + 242))++ == 0xFFFF;
if( v6 && *((_ETHREAD **)result + 19) != (_ETHREAD *)((char *)result + 152) && !*((_WORD *)result + 243) )
return(_ETHREAD *)KiCheckForKernelApcDelivery();
return result;
}Referenced by:
NtWaitForWorkViaWorkerFactory