IopLoadFileSystemDriver
VOID __stdcall IopLoadFileSystemDriver(PDEVICE_OBJECT DeviceObject){
__int64 v2;
_DEVICE_OBJECT *v3;
PIRP v4;
struct _IO_STATUS_BLOCK IoStatusBlock;
struct _KEVENT Event;
memset(&Event, 0, sizeof(Event));
IoStatusBlock = 0i64;
v2 = *((_QWORD *)DeviceObject + 3);
v3 = DeviceObject;
while( v2 )
{
v3 = (_DEVICE_OBJECT *)v2;
v2 = *(_QWORD *)(v2 + 24);
}
KeInitializeEvent(&Event, NotificationEvent, 0);
v4 = IoBuildDeviceIoControlRequest(0xEu, v3, 0i64, 0, 0i64, 0, 0, &Event, &IoStatusBlock);
if( v4 )
{
*(_WORD *)(*((_QWORD *)v4 + 23) - 72i64) = 781;
if( IofCallDriver(v3, v4) == 259 )
KeWaitForSingleObject(&Event, Executive, 0, 0, 0i64);
}
IopDecrementDeviceObjectRef(DeviceObject, 1u, 1u);
}Referenced by:
IopMountVolume