ViIsActiveChannelWcb
UINT8 __stdcall ViIsActiveChannelWcb(
_ADAPTER_INFORMATION *AdapterInformation,
_VF_WAIT_CONTEXT_BLOCK *ChannelWaitBlock){
UINT64 *v2;
UINT8 v4;
_ADAPTER_INFORMATION *v5;
unsigned __int64 v6;
__int64 i;
_VF_WAIT_CONTEXT_BLOCK *v8;
v2 = (UINT64 *)(AdapterInformation + 36);
v4 = 0;
v5 = AdapterInformation + 32;
v6 = (unsigned __int8)KeAcquireSpinLockRaiseToDpc((UINT64 *)AdapterInformation + 18);
for( i = *(_QWORD *)v5; ; i = *((_QWORD *)v8 + 9) )
{
v8 = (_VF_WAIT_CONTEXT_BLOCK *)(i - 72);
if( v5 == v8 + 18 )
break;
if( ChannelWaitBlock == v8 )
{
v4 = 1;
break;
}
}
KxReleaseSpinLock(v2);
__writecr8(v6);
return v4;
}Referenced by:
VfAllocateAdapterChannel
VfAllocateAdapterChannelEx
ViAdapterCallback