none
How to write a driver containing only an INI (or INX) file in VisualStudio RRS feed

  • Question

  • Hi,

    is there any example showing how to set up a driver consisting only of an *.ini (or *.inx) file using the VisualStudio flow? The *.inx file is essentially the same as the Serial Port ini file but uses a PCI vend_ID/dev/ID instead of the PNP IDs. Also, an example of installing a *.dll and *.exe passed in from an external source. i.e. the source code is not in the driver project. The customer just supplies binaries.

    Background is the following:

    I am writing a driver for a PCI multifunction device. Of the eight functions, 6 are UARTS, one is a 'unique device' where the driver should just install a dll and exe which my customer supplies and the last one is a semi-standard audio device based on the WavePCI miniport model. This all works using the WDK by the way but the customer now wants to port to Windows 8.

    I would like to have a single package and four projects in the VisualStudio Solution. All signing etc. should be through a single *.cat file. At least, that's the way it currently works for Win-xp / Win-7 using WDK

    Proj_1 : top-level. Just an ini file. Loads the other drivers. Uses varying resource descriptors to assign some BAR sub-regions to nine UART instances

    Proj_2 : Uart with PCI vend_ID/System_ID. Just an *.ini / *.inx file. Loads the standard system serial.sys driver

    Proj_3 :  'Unique device' . Just an ini file specifying an exe and dll to be loaded

    Proj_4 : The Audio PCIwave device

    I can't seem to get the first three projects here to work. VisualStudio keeps looking for <proj_name>.sys and build_all fails during SIGNTASK. I have not found a way to get the customer *.exe and *.dll passed to the package directory either.

    I have tried the 'import from existing code' which claims everything is OK but build_all does not run without errors.

    Thanks,

    Charles

    Saturday, August 23, 2014 5:25 PM

Answers

  • are you using the win7 or win8/8.1 WDK? the 8/8.1 wdk has  structured signing pattern. you have a driver package project which contains the INF (or inx) and when you build the project, the build outputs of all other projects in the solution are scavenged, put into the directory and then inf2cat is run to sign them.  You have a driver package project, thus inf and cat, per device, not one global cat. I would avoid a global cat file, it means you need to resign whenever one of the projects change, while individually signed packages do not invalidate each other when they change.

    d -- This posting is provided "AS IS" with no warranties, and confers no rights.

    Saturday, August 23, 2014 11:38 PM

All replies

  • Looks like I can solve Proj_2 (and therefore probably proj_1) by setting TARGETTYPE to NOTARGET. I'm still working on the others.
    Saturday, August 23, 2014 11:10 PM
  • are you using the win7 or win8/8.1 WDK? the 8/8.1 wdk has  structured signing pattern. you have a driver package project which contains the INF (or inx) and when you build the project, the build outputs of all other projects in the solution are scavenged, put into the directory and then inf2cat is run to sign them.  You have a driver package project, thus inf and cat, per device, not one global cat. I would avoid a global cat file, it means you need to resign whenever one of the projects change, while individually signed packages do not invalidate each other when they change.

    d -- This posting is provided "AS IS" with no warranties, and confers no rights.

    Saturday, August 23, 2014 11:38 PM
  • VisualStudio 2013 + Update3 claims WDK 6.3.9600.16384 is installed, which ever this is. I also have 7600.16385.1 and 8.100.25984 installed on the machine.

    Regarding the global cat, this is for an emulated multifunction device. When the physical device is installed there should be just one driver package. It is an emulated multifunction device in the sense that proj_1, which really owns the PCI BARs, uses a varying resource map to assign parts of the BARs to the three other drivers.

    Sunday, August 24, 2014 9:31 AM