Windows System Software -- Consulting, Training, Development -- Unique Expertise, Guaranteed Results

Before Posting...
Please check out the Community Guidelines in the Announcements and Administration Category.

No drivers are installed for this device

zviveredzvivered Member Posts: 28

Hello,

In the device manager (windows 7-32) I see a device called:
Intel(R) 7 Series/C216 Chipset Family SMBus Host Controller - 1E22

According to the properties:
No drivers are installed for this device

Can you please explain how this is possible ?
If there is no driver, how can see all properties of this driver:

Intel(R) 7 Series/C216 Chipset Family SMBus Host Controller - 1E22
Device type: System devices
Manufacturer: Intel
Location: PCI bus 0, device 31, function 3

I'm asking because I consider installing my driver and not using a filter.

Thank you,
Zvika

Comments

  • Doron_HolanDoron_Holan Member - All Emails Posts: 10,448
    The Intel INF is installing a “null service “ on the device. This is a special semantic which says it is ok to not have a driver installed where the most visible result is that the device is not !ed out in device manager and doesn’t have a problem code
    d
  • zviveredzvivered Member Posts: 28

    Hi Doron, All,

    Thank you very much for your fast reply.

    I tried to install a filter driver for the "SMBus Host Controller" mentioned above.

    The class of "SMBus Host Controller" is:
    Class long name: System devices
    Device class guid: {4d36e97d-e325-11ce-bfc1-08002be10318}

    So I modified only this in the sample filter.inf:
    Class = System
    ClassGuid = {4d36e97d-e325-11ce-bfc1-08002be10318}

    Then I did the following steps:
    1. Enumerate a toaster device - Skipped
    2. Open the Device Manager.
    3. Open the Properties of the "SMBus Host Controller" for which you want to install filter.
    4. Click the Driver tab, and then click Update Driver.
    5. Follow the wizard's prompts, and when prompted, select the Display a list of the known drivers option.
    6. Click Have Disk and point to the location of the filter.inf file.
    7. Proceed through the rest of the install.

    The installation was completed with no errors. Upon completion, in the device manager, "SMBus Host Controller" disappeared and instead I got:
    Microsoft Toaster Filter

    Is this OK ?
    What is the reason the "SMBus Host Controller" disappeared ?

    Best regards,
    Zvika

  • Doron_HolanDoron_Holan Member - All Emails Posts: 10,448

    The name you see in device manager comes from the device description in the INF. Your INF overwrote the the previous device description. did you install your driver as the FDO for the device or as a filter? I would imagine that if you installed it as a filter without an FDO (since the intel INF didn't supply one) the device would not start.

    d
  • zviveredzvivered Member Posts: 28

    Hi Doron, All,

    The steps I followed are listed in:
    C:/WinDDK/7600.16385.1/src/general/toaster/wdm/toaster.htm#filter

    They are used to install a filter driver.
    I used the same filter.inf (only modified Class, ClassGuid) to install a filter driver for "SMBus Host Controller".

    According the DbgView, upon installation completion, the driver is running.
    I saw all KdPrint messages.

    But as I said, for some reason, "SMBus Host Controller" disappeared.
    When I uninstalled "Microsoft Toaster Filter", "SMBus Host Controller" appeared again.

    Thank you,
    Zvika

  • Peter_Viscarola_(OSR)Peter_Viscarola_(OSR) Administrator Posts: 7,515
    edited August 9

    I don’t know. But I can tell you that you can’t filter a device that doesn’t have a driver installed for it!

    SMBUS controllers frequently have no host-based driver installed. In fact on most Intel PCH/ICH packages this is how they are designed. Look at the INF and you’ll see it installed something called “NoDrv”. The point of this is to signal to the system that no host driver is required and to prevent this showing up as an unclaimed device in Device Manager.

    The reason that no driver is required for SMBUS controllers is that they’re typically used exclusively from the BIOS (for things like configuring the system DIMMs during boot). You cannot typically claim/use these controllers safely from the host, because they’re usually already controlled by the BIOS... and thus you’ll be interfering with the BIOS use of the controller.

    Peter

    Peter Viscarola
    OSR
    @OSRDrivers

  • zviveredzvivered Member Posts: 28

    Hi Doron, Peter, All,

    Sorry. My mistake.
    My filter driver is for:
    Intel(R) QM77 Express Chipset LPC Controller - 1E55
    According to the device manager, the driver file is: msisadrv.sys

    The sample, src\general\toaster\kmdf\filter is not calling to:
    WdfDeviceCreateDeviceInterface
    The sample, src\general\toaster\kmdf\func\simple is calling to WdfDeviceCreateDeviceInterface

    But this sample enumerates an EvtIoDeviceControl

    In my application, I have to send IOCTL requests to the filter driver.
    So I called to:
    status = WdfDeviceCreateDeviceInterface(
    device,
    (LPGUID) &GUID_DEVINTERFACE_TOASTER,
    NULL // ReferenceString
    );

    In my application I called to:
    DevicePath = GetDevicePath((LPGUID)&GUID_DEVINTERFACE_TOASTER);

    m_hDevice = CreateFile(DevicePath,
                         GENERIC_READ|GENERIC_WRITE,
                         FILE_SHARE_READ | FILE_SHARE_WRITE,
                         NULL,
                         OPEN_EXISTING,
                         0,
                         NULL); 
    

    Both calls works fine. I got a handle to the filter driver.

    But when I called to:
    DeviceIoControl (m_hDevice, Code, ....) I got rc=0.

    Can you please tell what am I doing wrong ?

    Thank you,
    Zvika

  • zviveredzvivered Member Posts: 28

    Hi All,

    Just noticed that upon installation, the following DriverEntry KdPrint is not running:
    KdPrint(("Toaster Generic Filter Driver Sample - Driver Framework Edition.\n"));

    I only see the WdfCoInstaller messages:
    [1100] WdfCoInstaller: [08/11/2019 17:06.07.765] DIF_INSTALLDEVICE: Pre-Processing
    [1100] WdfCoInstaller: [08/11/2019 17:06.08.186] ReadComponents: WdfSection for Driver Service ToasterFilter using KMDF lib version Major 0x1, minor 0x9
    [1100] WdfCoInstaller: [08/11/2019 17:06.08.479] ReadComponents: WdfSection for Driver Service wdffeatured using KMDF lib version Major 0x1, minor 0x9
    [1100] WdfCoInstaller: [08/11/2019 17:06.12.594] DIF_INSTALLDEVICE: Post-Processing

    Does it make sense ?

    Thank you,
    Zvika

  • zviveredzvivered Member Posts: 28

    Hi All,

    My mistake. Again.
    For some reason, my IOCTL is causing a crash in the filter driver.
    Checking.

    Thank you,
    Zvika

Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Upcoming OSR Seminars
Writing WDF Drivers 21 Oct 2019 OSR Seminar Space & ONLINE
Internals & Software Drivers 18 Nov 2019 Dulles, VA
Kernel Debugging 30 Mar 2020 OSR Seminar Space
Developing Minifilters 27 Apr 2020 OSR Seminar Space & ONLINE