none
PCIe H/W Card uses Microsoft mf.sys, serenum.sys, and serial.sys drivers, do the inf files need to be signed? RRS feed

  • Question

  • I am using a custom PCIe hardware card created by our team.  The inf files point to all windows drivers,

    that include mf.sys, serenum.sys, and serial.sys.  I am unable to install the inf files unless I disable driver verification.

    The problem is each Windows10 update uninstalls the inf files and I have to repeat the process again.  It occurred to 

    me that the software drivers pointed to in the inf files are out of the box from Microsoft and should not need to be signed.

    Does anyone have experience with this?  The h/w contains 3 16550 compliant UARTs.  

    Here is the mf.inf:

    ;/*++;

    ;Copyright (c) 2018Corporation All rights Reserved
    ;
    ;Module Name:
    ;
    ;    ImgCommMF.INF
    ;
    ;Abstract:
    ;    INF file for installing the Windows multifunction driver (mf.sys)

    ;
    ;--*/

    [Version]
    Signature="$Chicago$"  ; This inf file is for multiple windows platforms (32bit/64bit).
    Class=MultiFunction
    ClassGuid={4d36e971-e325-11ce-bfc1-08002be10318}
    Provider=%MFGNAME%
    DriverVer=02/24/2015,3.0.0.0

    [ControlFlags]
    ExcludeFromSelect=*

    ; ================= Device Install section =====================
    [Manufacturer]
    %MFGNAME%=DeviceList,NTamd64,NTia64

    [DeviceList]
    ; Vendor id and device id for the OPEX image communcation card.
    %DESCRIPTION%=ComDriverInstall,PCI\VEN_18fe&DEV_7014 

    ; -- AMD 64 bit --
    [DeviceList.NTamd64]
    ; Vendor id and device id for the OPEX image communcation card.
    %DESCRIPTION%=ComDriverInstall,PCI\VEN_18fe&DEV_7014

    ; -- intel 64 bit --
    [DeviceList.NTia64]
    ; Vendor id and device id for the OPEX image communcation card.
    %DESCRIPTION%=ComDriverInstall,PCI\VEN_18fe&DEV_7014

    ; ----- Install Sections -----
    [ComDriverInstall]
    CopyINF = ImgCommCom.inf
    Include = mf.inf
    Needs = MFINSTALL.mf

    [ComDriverInstall.HW]
    AddReg=ImgCommCom_AddReg_HW

    [ComDriverInstall.Services]
    Include = mf.inf
    Needs = MFINSTALL.mf.Services

    ; ----- AddReg HW Sections -----
    [ImgCommCom_AddReg_HW]
    HKR,Child0001,HardwareID,,MF\IMGCOMMCOM_COMPORT_3
    HKR,Child0001,VaryingResourceMap,1,04, 20,00,00,00, 08,00,00,00
    HKR,Child0001,ResourceMap,1,08
    HKR,Child0002,HardwareID,,MF\IMGCOMMCOM_COMPORT_1
    HKR,Child0002,VaryingResourceMap,1,04, 40,00,00,00, 08,00,00,00
    HKR,Child0002,ResourceMap,1,08
    HKR,Child0003,HardwareID,,MF\IMGCOMMCOM_COMPORT_2
    HKR,Child0003,VaryingResourceMap,1,04, 60,00,00,00, 08,00,00,00
    HKR,Child0003,ResourceMap,1,08

    ; Description of fields:
    ; ex: HKR,Child0000,VaryingResourceMap,1,04, 00,00,00,00, 08,00,00,00 
    ; 1 - type of registry key
    ; 04 - IO BAR from the parent resource list (*)
    ; 00,00,00,00 - address offset for the given COM port
    ; 08,00,00,00 - size for the given COM port

    ; ex: HKR,Child0000,ResourceMap,1,08                                                               
    ; 1 - type of registry key
    ; 08 - IRQ from parent resource list


    [Strings]
    MFGNAME = "Corporation"
    DESCRIPTION = "omm MF Adapter"

    Here is the serial.inf:

    ;/*++
    ;
    ;Copyright (c) 2018 Corporation All rights Reserved
    ;
    ;Module Name:
    ;
    ;    ImgCommCom.INF
    ;
    ;Abstract:
    ;    INF file for installing the Windows serial drivers (serial.sys and serenum.sys)
    ;;
    ;--*/

    [Version]
    ;Signature="$Chicago$"     ;  Chicago equates to Windows7 OS (Not correct?)
    Signature="$WINDOWS NT$"     ;
    Class=Ports
    ClassGuid={4d36e978-e325-11ce-bfc1-08002be10318}
    Provider=%MFGNAME%
    DriverVer=02/24/2015,3.0.0.0

    [ControlFlags]
    ExcludeFromSelect = *

    [DestinationDirs]
    DefaultDestDir  = 11
    ImgCommCom_CopyFiles = 12


    ; Install class "Ports"
    ;----------------------------------------------------------
    [ClassInstall]
    AddReg=PortsClass.AddReg

    [PortsClass.AddReg]
    HKR,,,,%PortsClassName%

    [ClassInstall32.NT]
    AddReg=PortsClass.NT.AddReg

    [PortsClass.NT.AddReg]
    HKR,,,,%PortsClassName%
    HKR,,Icon,,"-23"
    HKR,,Installer32,,"MsPorts.Dll,PortsClassInstaller"


    ; ================= Device Install section =====================

    [Manufacturer]
    %MFGNAME%=DeviceList,NTamd64,NTia64

    [DeviceList]
    %DESCRIPTION1%=Com1DriverInstall,MF\IMGCOMMCOM_COMPORT_1
    %DESCRIPTION2%=Com2DriverInstall,MF\IMGCOMMCOM_COMPORT_2
    %DESCRIPTION3%=Com3DriverInstall,MF\IMGCOMMCOM_COMPORT_3

    ; -- AMD 64 bit --
    [DeviceList.NTamd64]
    %DESCRIPTION1%=Com1DriverInstall,MF\IMGCOMMCOM_COMPORT_1
    %DESCRIPTION2%=Com2DriverInstall,MF\IMGCOMMCOM_COMPORT_2
    %DESCRIPTION3%=Com3DriverInstall,MF\IMGCOMMCOM_COMPORT_3


    ; -- intel 64 bit --
    [DeviceList.NTia64]
    %DESCRIPTION1%=Com1DriverInstall,MF\IMGCOMMCOM_COMPORT_1
    %DESCRIPTION2%=Com2DriverInstall,MF\IMGCOMMCOM_COMPORT_2
    %DESCRIPTION3%=Com3DriverInstall,MF\IMGCOMMCOM_COMPORT_3


    ; ----- Install Sections -----
    ; -- COM1 --
    [Com1DriverInstall.NT]
    AddReg=ComDriverInstall.NT.AddReg

    [Com1DriverInstall.NT.HW]
    AddReg=ImgCommCom1_AddReg_HW, ImgCommCom_AddReg_HW

    [Com1DriverInstall.NT.Services]
    AddService = Serial, 0x00000002, Serial_Service_Inst, Serial_EventLog_Inst
    AddService = Serenum,,Serenum_Service_Inst


    ; -- COM2 --
    [Com2DriverInstall.NT]
    AddReg=ComDriverInstall.NT.AddReg

    [Com2DriverInstall.NT.HW]
    AddReg=ImgCommCom2_AddReg_HW, ImgCommCom_AddReg_HW

    [Com2DriverInstall.NT.Services]
    AddService = Serial, 0x00000002, Serial_Service_Inst, Serial_EventLog_Inst
    AddService = Serenum,,Serenum_Service_Inst


    ; -- COM3 --
    [Com3DriverInstall.NT]
    AddReg=ComDriverInstall.NT.AddReg

    [Com3DriverInstall.NT.HW]
    AddReg=ImgCommCom3_AddReg_HW, ImgCommCom_AddReg_HW

    [Com3DriverInstall.NT.Services]
    AddService = Serial, 0x00000002, Serial_Service_Inst, Serial_EventLog_Inst
    AddService = Serenum,,Serenum_Service_Inst


    ; -------------- Serial Port Driver install sections
    [Serial_Service_Inst]
    DisplayName    = %Serial.SVCDESC%
    ServiceType    = 1                ; SERVICE_KERNEL_DRIVER
    StartType      = 1                ; SERVICE_SYSTEM_START (this driver may do detection)
    ErrorControl   = 0                ; SERVICE_ERROR_IGNORE
    ServiceBinary  = %12%\serial.sys  ; %12% represents C:\Windows\System32\drivers
    LoadOrderGroup = Extended base

    ; -------------- Serenum Driver install section
    [Serenum_Service_Inst]
    DisplayName    = %Serenum.SVCDESC%
    ServiceType    = 1                ; SERVICE_KERNEL_DRIVER
    StartType      = 3                ; SERVICE_DEMAND_START
    ErrorControl   = 1                ; SERVICE_ERROR_NORMAL
    ServiceBinary  = %12%\serenum.sys ; %12% represents C:\Windows\System32\drivers
    LoadOrderGroup = PNP Filter

    [Serial_EventLog_Inst]
    AddReg = Serial_EventLog_AddReg

    [Serial_EventLog_AddReg]
    HKR,,EventMessageFile,0x00020000,"%%SystemRoot%%\System32\IoLogMsg.dll;%%SystemRoot%%\System32\drivers\serial.sys"
    HKR,,TypesSupported,0x00010001,7


    ; ----- AddReg HW Sections -----
    [ComDriverInstall.NT.AddReg]
    HKR,,PortSubClass,1,01
    HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"

    [ImgCommCom_AddReg_HW]
    HKR,,ClockRate,0x10001,24000000           ; 24 MHz matches the h/w
    HKR,,"UpperFilters",0x00010000,"serenum"
    HKR,,EnablePowerManagement,0x10001, 1  

    [ImgCommCom1_AddReg_HW]
    HKR,,PortName,,COM1

    [ImgCommCom2_AddReg_HW]
    HKR,,PortName,,COM2

    [ImgCommCom3_AddReg_HW]
    HKR,,PortName,,COM3

    [Strings]
    MFGNAME = "Opex Corporation"
    Serial.SVCDESC = "Serial Port Driver"
    Serenum.SVCDESC = "Serunum Filter Driver"
    DESCRIPTION1 = "Image Comm COM1"
    DESCRIPTION2 = "Image Comm COM2"
    DESCRIPTION3 = "Image Comm COM3"

    PortsClassName = "Ports (COM & LPT)"

    Wednesday, June 6, 2018 9:16 PM

All replies

  • I just saw that you posted this in my other thread.  Yes, as of Windows 8, you need to sign the INF file to get it installed, even if it is just an INF file and doesn't use any non-Microsoft SYS files.  That's basically the whole reason why I needed to get my drivers signed in the first place.  I would not have bothered otherwise.


    --David Grayson


    Monday, October 8, 2018 8:41 PM