WmipDriverEntry

NTSTATUS __stdcall WmipDriverEntry(_DRIVER_OBJECT *DriverObject, _UNICODE_STRING *RegistryPath){
  NTSTATUS result; 
  int v4; 
  UINT64 DeviceCharacteristics; 
  _UNICODE_STRING DeviceName; 
  _STRING DestinationString; 
  _UNICODE_STRING SymbolicLinkName; 

  DeviceName = 0i64;
  SymbolicLinkName = 0i64;
  DestinationString = 0i64;
  KeInitializeMutex((PRKMUTEX)((char *)&ExBootDevicesRemovedEvent + 3072), 0);
  WmipInitializeRegistration(0i64);
  *(&ExBootDevicesRemovedEvent + 395) = 0i64;
  *(&ExBootDevicesRemovedEvent + 392) = 0i64;
  *(&ExBootDevicesRemovedEvent + 396) = 0i64;
  *(&ExBootDevicesRemovedEvent + 394) = WmipEventNotification;
  result = WmipInitializeDataStructs();
  if( result >= 0 )
  {
    RtlInitAnsiString(&DestinationString, "\\Registry\\Machine\\System\\CurrentControlSet\\Services\\WMI");
    RtlAnsiStringToUnicodeString((_UNICODE_STRING *)&ExBootDevicesRemovedEvent + 191, &DestinationString, 1u);
    result = WmipInitializeSecurity();
    if( result >= 0 )
    {
      RtlInitUnicodeString(&DeviceName, L"\\Device\\WMIDataDevice");
      LODWORD(DeviceCharacteristics) = 256;
      result = IoCreateDevice(
                 DriverObject,
                 0i64,
                 &DeviceName,
                 0x22ui64,
                 DeviceCharacteristics,
                 0,
                 (_DEVICE_OBJECT **)&ExBootDevicesRemovedEvent + 391);
      if( result >= 0 )
      {
        RtlInitUnicodeString(&SymbolicLinkName, L"\\DosDevices\\WMIDataDevice");
        v4 = IoCreateSymbolicLink(&SymbolicLinkName, &DeviceName);
        if( v4 < 0 )
        {
          IoDeleteDevice(*(&ExBootDevicesRemovedEvent + 391));
        }
        else
        {
          *(_BYTE *)(*(&ExBootDevicesRemovedEvent + 391) + 76i64) = 2;
          DriverObject->MajorFunction[14] = (int(__fastcall *)(_DEVICE_OBJECT *, _IRP *))WmipIoControl;
          DriverObject->MajorFunction[23] = (int(__fastcall *)(_DEVICE_OBJECT *, _IRP *))WmipSystemControl;
          DriverObject->MajorFunction[0] = (int(__fastcall *)(_DEVICE_OBJECT *, _IRP *))WmipOpenCloseCleanup;
          DriverObject->MajorFunction[2] = (int(__fastcall *)(_DEVICE_OBJECT *, _IRP *))WmipOpenCloseCleanup;
          DriverObject->MajorFunction[18] = (int(__fastcall *)(_DEVICE_OBJECT *, _IRP *))WmipOpenCloseCleanup;
          *(_DWORD *)(*(&ExBootDevicesRemovedEvent + 391) + 48i64) &= ~0x80u;
          IoWMIRegistrationControl(*(&ExBootDevicesRemovedEvent + 391), 1ui64);
          IoRegisterShutdownNotification(*(&ExBootDevicesRemovedEvent + 391));
        }
        return v4;
      }
    }
  }
  return result;
}

Referenced by:

No references.