VfCancelAdapterChannel
UINT8 __fastcall VfCancelAdapterChannel(
_DMA_ADAPTER *DmaAdapter,
_DEVICE_OBJECT *DeviceObject,
VOID *DmaTransferContext){
__int64(__fastcall *v6)(_DMA_ADAPTER *, _DEVICE_OBJECT *, VOID *);
INT64 v7;
__int64(__fastcall *v8)(_DMA_ADAPTER *, _DEVICE_OBJECT *, VOID *);
LIST_ENTRY *AdapterInformationInternal;
UINT8 v10;
UINT8 v11;
INT64 v12;
struct _SLIST_ENTRY *v13;
LODWORD(v6) = ViGetRealDmaOperation(DmaAdapter, 0xB0ui64);
LOBYTE(v7) = 1;
v8 = v6;
AdapterInformationInternal = ViGetAdapterInformationInternal(DmaAdapter, v7);
v10 = v8(DmaAdapter, DeviceObject, DmaTransferContext);
v11 = v10;
if( AdapterInformationInternal )
{
if( v10 )
{
v12 = ViRemoveChannelWcb((INT64)AdapterInformationInternal, 0i64, (INT64)DmaTransferContext);
if( v12 )
{
DECREMENT_ADAPTER_CHANNELS((__int64)AdapterInformationInternal);
SUBTRACT_MAP_REGISTERS((INT64)AdapterInformationInternal, *(unsigned int *)(v12 + 48));
v13 = *(struct _SLIST_ENTRY **)(v12 + 96);
if( v13 )
ViFreeMapRegisterFile((__int64)AdapterInformationInternal, v13);
ExFreeToNPagedLookasideList((NPAGED_LOOKASIDE_LIST *)ViHalWaitBlockLookaside, (PVOID)v12);
}
}
}
return v11;
}Referenced by:
No references.