PfpPrefetchEntireDirectory
__int64 PfpPrefetchEntireDirectory(__int64 a1, __int64 a2, UINT64 a3, __int64 a4, __int64 a5, ...){
__int64 v8;
__int64 v9;
int v10;
__int64 v11;
NTSTATUS v12;
_QWORD *v13;
UINT64 *ReturnedLength;
__int64 Information;
UINT64 v17[2];
VOID *Handle;
PVOID FileObject[2];
__int64 v20;
va_list va;
va_start(va, a5);
Information = 0i64;
v8 = *(_QWORD *)(a5 + 8);
v9 = *(_QWORD *)(a5 + 16);
Handle = 0i64;
v20 = 0x200000000i64;
*(_OWORD *)v17 = 0i64;
*(_OWORD *)FileObject = 0i64;
v10 = PfpOpenHandleCreate((__int64)&Handle, a1, v9, v8, 1048577, 0x4021u, 0, a2);
v11 = v20;
v12 = v10;
if( v10 >= 0 )
{
if( a4 )
{
v13 = FileObject[0];
if( IopQueryXxxInformation(FileObject[0], 6ui64, 8ui64, 0, &Information, (UINT64 *)va, 1u) >= 0 )
{
*(_QWORD *)(a4 + 12) = Information;
*(_QWORD *)a4 = v13[3];
*(_DWORD *)(a4 + 8) = v11;
}
}
LODWORD(ReturnedLength) = 590112;
v12 = IopXxxControlFile(Handle, 0i64, 0i64, 0i64, v17, (UINT64)ReturnedLength, a3);
if( v12 >= 0 )
v12 = 0;
}
if( (v11 & 0x400000000i64) != 0 )
PfpOpenHandleClose(&Handle, a1);
return(unsigned int)v12;
}Referenced by:
PfSnPrefetchMetadata