IopReferenceDriverObjectByName
_DRIVER_OBJECT *__stdcall IopReferenceDriverObjectByName(_UNICODE_STRING *DriverName){
NTSTATUS v2;
int v3[2];
__int64 v4;
_UNICODE_STRING *v5;
int v6;
int v7;
__int128 v8;
HANDLE Handle;
PVOID Object;
v3[1] = 0;
v7 = 0;
Handle = 0i64;
if( !DriverName->Length )
return 0i64;
v5 = DriverName;
v3[0] = 48;
v4 = 0i64;
v6 = 576;
v8 = 0i64;
if( ObOpenObjectByName((__int64)v3, (__int64)IoDriverObjectType, 0, 0i64, 0x80u, 0i64, &Handle) < 0 )
return 0i64;
Object = 0i64;
v2 = ObReferenceObjectByHandle(Handle, 0, IoDriverObjectType, 0, &Object, 0i64);
ZwClose(Handle);
if( v2 >= 0 )
return(_DRIVER_OBJECT *)Object;
else
return 0i64;
}Referenced by:
IopInitializeSystemDrivers
PiGetDefaultMessageString
PipCallDriverAddDeviceQueryRoutine