Trouble creating .inf file
-
EDIT - Thanks to everyone that replied. :-D I have found a better solution than an INF file. My company has an existing software-only driver. The 32-bit version is being installed using InstallShield. Unfortunately for me, the company wants to get away from InstallShield as the product in question is going to be part of a customer's own installation. The build system here produces the 64-bit signed driver, and I am tasked with creating a .inf file to install this driver. I've been reading Microsoft documents about .inf files (until my eyes are bleeding) and all of this documentation seems to be centered around the Windows Driver Development Kit. I believe that this kit generates a .inx file which is really the .inf file. However, all I need to do is create a .inf file that will do the job. When right-clicking on the .inf file and selecting Install, the install process is spectacularly silent about anything that is happening (right or wrong). So it is very difficult to determine what is happening. Some of my problems include the following: 1. The driver is already signed, so I find it unlikely that I will need a CatalogFile. Will the .inf file work without a defined CatalogFile? 2. It seems that a software-only driver needs to have some dummy device installed, and (from the InstallShield results) I see this dummy device in HKLM\CurrentControlSet\Enum\Root\LEGACY_DRIVER_NAME. This is somehow linked to service entry in HKLM\CurrentControlSet\services\driver_name which points to the actual driver executable in \Windows\System32\drivers. I'm getting lost trying to define this dummy device. 3. I am successful installing the service, and I find it in the registry, but the install process never copies my driver into the drivers directory, so it appears to die before it gets that far. 4. I keep reading about a CoInstaller, but I get the feeling that it is not exactly necessary. Is this correct? What I need is a clue. I haven't defined the dummy driver entry which is where I need the help. I've also made the assumption that the install directory where the .inf file is executed from is the root of the SourceDisk. Here's what I have in my .inf file so far: This was edited to include a missing quote.
[Version]
Signature = "$CHICAGO$"
Class = LegacyDriver
ClassGuid = {8ECC055D-047F-11D1-A537-0000F8753ED1}
Privider = %US%
DriverVer = 12/16/2012, 5.1.0.126[vstor2-mntapi20-sharedCopyFiles]
%DriverExeName%[SourceDiskNames.amd64]
1 = %DiskDesc%,,,\AMD64[So
-
EDIT - Thanks to everyone that replied. :-D I have found a better solution than an INF file. My company has an existing software-only driver. The 32-bit version is being installed using InstallShield. Unfortunately for me, the company wants to get away from InstallShield as the product in question is going to be part of a customer's own installation. The build system here produces the 64-bit signed driver, and I am tasked with creating a .inf file to install this driver. I've been reading Microsoft documents about .inf files (until my eyes are bleeding) and all of this documentation seems to be centered around the Windows Driver Development Kit. I believe that this kit generates a .inx file which is really the .inf file. However, all I need to do is create a .inf file that will do the job. When right-clicking on the .inf file and selecting Install, the install process is spectacularly silent about anything that is happening (right or wrong). So it is very difficult to determine what is happening. Some of my problems include the following: 1. The driver is already signed, so I find it unlikely that I will need a CatalogFile. Will the .inf file work without a defined CatalogFile? 2. It seems that a software-only driver needs to have some dummy device installed, and (from the InstallShield results) I see this dummy device in HKLM\CurrentControlSet\Enum\Root\LEGACY_DRIVER_NAME. This is somehow linked to service entry in HKLM\CurrentControlSet\services\driver_name which points to the actual driver executable in \Windows\System32\drivers. I'm getting lost trying to define this dummy device. 3. I am successful installing the service, and I find it in the registry, but the install process never copies my driver into the drivers directory, so it appears to die before it gets that far. 4. I keep reading about a CoInstaller, but I get the feeling that it is not exactly necessary. Is this correct? What I need is a clue. I haven't defined the dummy driver entry which is where I need the help. I've also made the assumption that the install directory where the .inf file is executed from is the root of the SourceDisk. Here's what I have in my .inf file so far: This was edited to include a missing quote.
[Version]
Signature = "$CHICAGO$"
Class = LegacyDriver
ClassGuid = {8ECC055D-047F-11D1-A537-0000F8753ED1}
Privider = %US%
DriverVer = 12/16/2012, 5.1.0.126[vstor2-mntapi20-sharedCopyFiles]
%DriverExeName%[SourceDiskNames.amd64]
1 = %DiskDesc%,,,\AMD64[So
What about a silent install? Could you do a silent installshield install that does what you want? The customer's own install could then launch it silently. That might be easier than doing what you are trying to do....
-
EDIT - Thanks to everyone that replied. :-D I have found a better solution than an INF file. My company has an existing software-only driver. The 32-bit version is being installed using InstallShield. Unfortunately for me, the company wants to get away from InstallShield as the product in question is going to be part of a customer's own installation. The build system here produces the 64-bit signed driver, and I am tasked with creating a .inf file to install this driver. I've been reading Microsoft documents about .inf files (until my eyes are bleeding) and all of this documentation seems to be centered around the Windows Driver Development Kit. I believe that this kit generates a .inx file which is really the .inf file. However, all I need to do is create a .inf file that will do the job. When right-clicking on the .inf file and selecting Install, the install process is spectacularly silent about anything that is happening (right or wrong). So it is very difficult to determine what is happening. Some of my problems include the following: 1. The driver is already signed, so I find it unlikely that I will need a CatalogFile. Will the .inf file work without a defined CatalogFile? 2. It seems that a software-only driver needs to have some dummy device installed, and (from the InstallShield results) I see this dummy device in HKLM\CurrentControlSet\Enum\Root\LEGACY_DRIVER_NAME. This is somehow linked to service entry in HKLM\CurrentControlSet\services\driver_name which points to the actual driver executable in \Windows\System32\drivers. I'm getting lost trying to define this dummy device. 3. I am successful installing the service, and I find it in the registry, but the install process never copies my driver into the drivers directory, so it appears to die before it gets that far. 4. I keep reading about a CoInstaller, but I get the feeling that it is not exactly necessary. Is this correct? What I need is a clue. I haven't defined the dummy driver entry which is where I need the help. I've also made the assumption that the install directory where the .inf file is executed from is the root of the SourceDisk. Here's what I have in my .inf file so far: This was edited to include a missing quote.
[Version]
Signature = "$CHICAGO$"
Class = LegacyDriver
ClassGuid = {8ECC055D-047F-11D1-A537-0000F8753ED1}
Privider = %US%
DriverVer = 12/16/2012, 5.1.0.126[vstor2-mntapi20-sharedCopyFiles]
%DriverExeName%[SourceDiskNames.amd64]
1 = %DiskDesc%,,,\AMD64[So
Follow the link for some useful tools I discovered years ago, inc. INF-Tool. :) inner-smile.com/software
"It's true that hard work never killed anyone. But I figure, why take the chance." - Ronald Reagan That's what machines are for. Got a problem? Sleep on it.
-
What about a silent install? Could you do a silent installshield install that does what you want? The customer's own install could then launch it silently. That might be easier than doing what you are trying to do....
-
EDIT - Thanks to everyone that replied. :-D I have found a better solution than an INF file. My company has an existing software-only driver. The 32-bit version is being installed using InstallShield. Unfortunately for me, the company wants to get away from InstallShield as the product in question is going to be part of a customer's own installation. The build system here produces the 64-bit signed driver, and I am tasked with creating a .inf file to install this driver. I've been reading Microsoft documents about .inf files (until my eyes are bleeding) and all of this documentation seems to be centered around the Windows Driver Development Kit. I believe that this kit generates a .inx file which is really the .inf file. However, all I need to do is create a .inf file that will do the job. When right-clicking on the .inf file and selecting Install, the install process is spectacularly silent about anything that is happening (right or wrong). So it is very difficult to determine what is happening. Some of my problems include the following: 1. The driver is already signed, so I find it unlikely that I will need a CatalogFile. Will the .inf file work without a defined CatalogFile? 2. It seems that a software-only driver needs to have some dummy device installed, and (from the InstallShield results) I see this dummy device in HKLM\CurrentControlSet\Enum\Root\LEGACY_DRIVER_NAME. This is somehow linked to service entry in HKLM\CurrentControlSet\services\driver_name which points to the actual driver executable in \Windows\System32\drivers. I'm getting lost trying to define this dummy device. 3. I am successful installing the service, and I find it in the registry, but the install process never copies my driver into the drivers directory, so it appears to die before it gets that far. 4. I keep reading about a CoInstaller, but I get the feeling that it is not exactly necessary. Is this correct? What I need is a clue. I haven't defined the dummy driver entry which is where I need the help. I've also made the assumption that the install directory where the .inf file is executed from is the root of the SourceDisk. Here's what I have in my .inf file so far: This was edited to include a missing quote.
[Version]
Signature = "$CHICAGO$"
Class = LegacyDriver
ClassGuid = {8ECC055D-047F-11D1-A537-0000F8753ED1}
Privider = %US%
DriverVer = 12/16/2012, 5.1.0.126[vstor2-mntapi20-sharedCopyFiles]
%DriverExeName%[SourceDiskNames.amd64]
1 = %DiskDesc%,,,\AMD64[So
fglenn wrote:
(until my eyes are bleeding)
You should have tried writing an inf file for NT4......
fglenn wrote:
generates a .inx file
No, YOU write an inf file.
fglenn wrote:
he install process is spectacularly silent
Taka a look at the system file setupapi.log, there you will see al the output.
fglenn wrote:
. The driver is already signed, so I find it unlikely that I will need a CatalogFile. Will the .inf file work without a defined CatalogFile?
You can sign just the driver binary (normlly done for boot start devices) or you can sign the binary inf cat file combo. You have a few isues with the inf file, vstor2-mntapi20-shared isnt declared for example. Run Chkinf on it (in the WDK tools\chkinf dir), it will check the file for you and report any errors.
============================== Nothing to say.