FsRtlQueryOpen
INT64 __stdcall FsRtlQueryOpen(PDEVICE_OBJECT DeviceObject, INT64 a2){
INT64 v2;
INT64 v3;
INT64 v4;
INT64 v7;
__int64 v8;
__int64 v9;
INT64 v10;
_ETHREAD *CurrentThread;
unsigned int v12;
int v13;
int v14[4];
INT64 result[6];
int v16;
__int16 v17;
int v18;
v4 = v2;
v14[0] = 0;
v7 = v3;
memset((INT64)result, 0i64);
IoGetAttachedDevice(DeviceObject);
v10 = FsFilterCtrlInit((__int64)result, 249, v8, v9, *(_QWORD *)(*(_QWORD *)(a2 + 184) + 48i64), 1);
if( (int)v10 >= 0 )
{
v16 = v18;
result[3] = a2;
result[4] = v4;
result[5] = v7;
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
--*((_WORD *)CurrentThread + 242);
v12 = FsFilterPerformCallbacks((INT64)result, 1, 1, v14);
v13 = v12;
if( v17 )
v13 = FsFilterPerformCompletionCallbacks((__int64)result, v12);
KeLeaveCriticalRegionThread((__int64)KeGetCurrentThread());
FsFilterCtrlFree((__int64)result);
if( v13 >= 0 && (v14[0] & 2) == 0 )
return(unsigned int)-1073741822;
return(unsigned int)v13;
}
return v10;
}Referenced by:
IopQueryInformation