none
How to specify Driver Enumerator in the driver installation INF file RRS feed

  • Question

  • Hi,

    I am trying to create PCI driver based on the PCIDrv. The device is connected and powered. It is an PCIe bus device. My driver is meant to be a device driver. The  FdoGetData(Device) call returns null pointer. It seems to me that the device driver is not

    enumerated by PCI, rather by ROOT. In the INF file: models-section: as follows:

    [Standard.NT$ARCH$]

    %My.DeviceDesc%=My_Device, PCI\VEN_210&DEV_A01

    But it still installed with ROOT as Enumerator.

    Why?

    Thank you,

    Tiger

    Wednesday, April 22, 2015 6:28 PM

Answers

  • yeah well that will result in a root enumerated device as you observed. An inf file that specifies a pci enumerated device is installed by installing the driver package (using for example dpinst.exe)  with the hardware either in the system already or plugged into the system subsequently. PnP will then enumerate hardware and find your driver package and do the right thing. Alternative you can do this manually with the hardware plugged in by right clicking on the device in device manager and installing the driver through the "update driver software" dialogs. 

    Mark Roddy Windows Driver and OS consultant www.hollistech.com

    Wednesday, April 22, 2015 7:21 PM
    Moderator

All replies

  • How did you install the driver package?

    Mark Roddy Windows Driver and OS consultant www.hollistech.com

    Wednesday, April 22, 2015 6:42 PM
    Moderator
  • In Device manager, Add Legacy Hardware by Right Click. It invokes Add Hardware Wizard. Then Install the hardware manually, With Show All Devices Have Disk, and select the INF file for installation .

    Tiger

    Wednesday, April 22, 2015 7:07 PM
  • The driver is installed as a skeleton because I had commented most of the code with fdoData returned as null. Since it is installed, the enumerator is displayed as ROOT. The hardware IDs is PCI\VEN_210&DEV_A01. In the DevNode status properties:

    0180200B

    DN_ROOT_ENUMERATED

    DN_DRIVER_LOADED

    DN_STARTED

    DN_DISABLEABLE

    DN_NT_ENUMERATOR

    DN_NT_DRIVER

    Wednesday, April 22, 2015 7:15 PM
  • yeah well that will result in a root enumerated device as you observed. An inf file that specifies a pci enumerated device is installed by installing the driver package (using for example dpinst.exe)  with the hardware either in the system already or plugged into the system subsequently. PnP will then enumerate hardware and find your driver package and do the right thing. Alternative you can do this manually with the hardware plugged in by right clicking on the device in device manager and installing the driver through the "update driver software" dialogs. 

    Mark Roddy Windows Driver and OS consultant www.hollistech.com

    Wednesday, April 22, 2015 7:21 PM
    Moderator
  • I think it is because the driver has not been registered or it has not been completely installed.
    Wednesday, April 22, 2015 8:31 PM