IoRecordIoAttribution
VOID __fastcall IoRecordIoAttribution(VOID *OpaqueHandle, _IO_ATTRIBUTION_INFORMATION *AttributionInformation){
VOID *DiskIoAttribution;
VOID *v4;
_IOP_DISK_IO_ATTRIBUTION_CONTEXT *v5;
__int32 bf_0;
if( AttributionInformation->Version == 1 )
{
DiskIoAttribution = IopFindDiskIoAttribution(OpaqueHandle);
v4 = DiskIoAttribution;
if( DiskIoAttribution )
{
v5 = (_IOP_DISK_IO_ATTRIBUTION_CONTEXT *)DiskIoAttribution;
do
{
bf_0 = AttributionInformation->Flags._bf_0;
if( ((bf_0 & 0x800) == 0 || (bf_0 & 0x200) != 0 || *((_QWORD *)v5 + 22))
&& IopRecordIoAttribution(v5, AttributionInformation) < 0 )
{
break;
}
v5 = (_IOP_DISK_IO_ATTRIBUTION_CONTEXT *)*((_QWORD *)v5 + 22);
}
while( v5 );
IoDiskIoAttributionDereference(v4);
}
}
}Referenced by:
No references.