none
TAP driver installation on Windows 7 64-bit

    Question

  • Hi,

    I want to install a TAP driver on Windows OS. I have an application that does this installation, but on Windows 7 64-bit it doesn't work.

    I'm creating the device using these methods:

        SetupDiCreateDeviceInfoList();
        SetupDiCreateDeviceInfo();
        SetupDiSetDeviceRegistryProperty();
        SetupDiSetDeviceRegistryProperty();
        SetupDiCallClassInstaller();
        SetupDiGetDeviceInstallParams();

    Afterward, the device status is obtained using CM_Get_DevNode_Status(), and it returns the status 0x1802001 on all types of Windows systems:
    0x1802001:
        0x00000001  -> DN_ROOT_ENUMERATED   // Was enumerated by ROOT
        0x00002000  -> DN_DISABLEABLE       // Can be rebalanced
        0x00800000  -> DN_NT_ENUMERATOR     // S: This devnode's is an NT enumerator
        0x01000000  -> DN_NT_DRIVER         // S: This devnode's is an NT driver

    Then, the driver for the just created device is updated using UpdateDriverForPlugAndPlayDevices() function and an .inf file. The function exits correctly, but when checking the status again a problem appears on Windows 7 64-bit. The status on other Windows systems is 0x180200b.

    0x180200b:
        0x00000001  -> DN_ROOT_ENUMERATED   // Was enumerated by ROOT
        0x00000002  -> DN_DRIVER_LOADED     // Has Register_Device_Driver
        0x00000008  -> DN_STARTED           // Is currently configured
        0x00002000  -> DN_DISABLEABLE       // Can be rebalanced
        0x00800000  -> DN_NT_ENUMERATOR     // S: This devnode's is an NT enumerator
        0x01000000  -> DN_NT_DRIVER         // S: This devnode's is an NT driver

    But on Windows 7 64 bit OS the status is 0x1802401:
    0x1802401:
        0x00000001  -> DN_ROOT_ENUMERATED   // Was enumerated by ROOT
        0x00000400  -> DN_HAS_PROBLEM       // Need device installer
        0x00002000  -> DN_DISABLEABLE       // Can be rebalanced
        0x00800000  -> DN_NT_ENUMERATOR     // S: This devnode's is an NT enumerator
        0x01000000  -> DN_NT_DRIVER         // S: This devnode's is an NT driver
    and the problem is CM_PROB_FAILED_START. I'm doing 20 rechecks of the status, but the same problem appears.

    The .cat file associated with the .inf file (obtain with inf2cat.exe) is properly signed with a certificate (I verified it with signtool verify /kp).

     

    Do you have any idea why the installation is not working? Clearly is something related with Win7 64-bit systems.

     

    Thanks,

    Marius

    Wednesday, March 09, 2011 3:32 PM

All replies

  • Probably it is a signing issue. Drivers for 64-bit OS must be signed.

    Otherwise, ask the person who made the install application to fix it.

    --pa

     

    Wednesday, March 09, 2011 7:34 PM
  • Hi,

     

    Thanks for the response, but as I've said the driver is signed and verified with kernel-mode driver signing policy. I'm the one who has to fix it. That the reason I've asked this question... because I don't know why it fails on Windows 7 64-bit.

    -

    Marius

    Thursday, March 10, 2011 7:51 AM