Hi All,
We are trying to install our driver using Nsis. The problem is,
1) Hardware ID is not taking as "USB\VID_1567&PID_4444" in InstDrv::InitDriverSetup.
2) If I use HwId as "USB/VID_1567&PID_4444". Its working fine. But this is not actual Hardware id.
Only the Slash is different. So please give any solution to use Hardware id as "USB\VID_1567&PID_4444".
Thanks in Advance!!
InstDrv::InitDriverSetup not working with HwId = "USB\VID_1567&PID_4444".
21 posts
Try removing "USB\". Windows should figure out what type of device it is.
Hi Jason,
Actually,That ID will come with hardware chip. If I insert the module ,it is detecting as "USB\VID_1567&PID_4444" in Device Manager->Adapter->Properties->Details->Hardware Ids.
So we can't change that ID. If I change ID in INF file and Script file ,while inserting the module, Driver is not installing for module.
Is there any solution to accept ID("USB\VID_1567&PID_4444") ?..
Thanks,
Raja.
Actually,That ID will come with hardware chip. If I insert the module ,it is detecting as "USB\VID_1567&PID_4444" in Device Manager->Adapter->Properties->Details->Hardware Ids.
So we can't change that ID. If I change ID in INF file and Script file ,while inserting the module, Driver is not installing for module.
Is there any solution to accept ID("USB\VID_1567&PID_4444") ?..
Thanks,
Raja.
For starters, paste up your code for the plugin call. Without that, we have nowhere to start.
Hi Jason,
Please explain me clearly. We are using Open Soure InstDrv plugin code only.
We are using the following code,
section "install a driver" instdriver
instdrv::initdriversetup /nounload "{4d36e978-e325-11ce-bfc1-08002be10318}" "USB\VID_1567&PID_4444"
pop $0
detailprint "initdriversetup: $0"
InstDrv:😁eleteOemInfFiles /NOUNLOAD
Pop $0
DetailPrint "DeleteOemInfFiles: $0"
StrCmp $0 "00000000" PrintInfNames ContInst1
PrintInfNames:
Pop $0
DetailPrint "Deleted $0"
Pop $0
DetailPrint "Deleted $0"
ContInst1:
InstDrv::CreateDevice /NOUNLOAD
Pop $0
DetailPrint "CreateDevice: $0"
InstDrv::InstallDriver /NOUNLOAD "c:\OneBox\rpsusb.inf"
Pop $0
DetailPrint "InstallDriver: $0"
StrCmp $0 "00000000" PrintReboot ContInst2
PrintReboot:
Pop $0
DetailPrint "Reboot: $0"
ContInst2:
InstDrv::CountDevices
Pop $0
DetailPrint "CountDevices: $0"
SectionEnd
Thanks!!
Please explain me clearly. We are using Open Soure InstDrv plugin code only.
We are using the following code,
section "install a driver" instdriver
instdrv::initdriversetup /nounload "{4d36e978-e325-11ce-bfc1-08002be10318}" "USB\VID_1567&PID_4444"
pop $0
detailprint "initdriversetup: $0"
InstDrv:😁eleteOemInfFiles /NOUNLOAD
Pop $0
DetailPrint "DeleteOemInfFiles: $0"
StrCmp $0 "00000000" PrintInfNames ContInst1
PrintInfNames:
Pop $0
DetailPrint "Deleted $0"
Pop $0
DetailPrint "Deleted $0"
ContInst1:
InstDrv::CreateDevice /NOUNLOAD
Pop $0
DetailPrint "CreateDevice: $0"
InstDrv::InstallDriver /NOUNLOAD "c:\OneBox\rpsusb.inf"
Pop $0
DetailPrint "InstallDriver: $0"
StrCmp $0 "00000000" PrintReboot ContInst2
PrintReboot:
Pop $0
DetailPrint "Reboot: $0"
ContInst2:
InstDrv::CountDevices
Pop $0
DetailPrint "CountDevices: $0"
SectionEnd
Thanks!!
That looks very close to the example script, from the way it's been written.
The only thing I see that's wrong is that you are passing an absolute path to InstDrv::InstallDriver. You should be extracting the driver to a proper script controlled path, and call InstallDriver with that path.
The only thing I see that's wrong is that you are passing an absolute path to InstDrv::InstallDriver. You should be extracting the driver to a proper script controlled path, and call InstallDriver with that path.
Hi Jason,
I tried same example script that given in NSIS link with "USB\IrCOMM2k" Hardware ID.Just see the following text:
#
# InstDrv Example, (c) 2003 Jan Kiszka (Jan Kiszka@web.de)
#
Name "InstDrv.dll test"
OutFile "InstDrv-Test.exe"
ShowInstDetails show
ComponentText "InstDrv Plugin Usage Example"
Page components
Page instfiles
Section "Install a Driver" InstDriver
InstDrv::InitDriverSetup /NOUNLOAD "{4d36e978-e325-11ce-bfc1-08002be10318}" "USB\IrCOMM2k"
Pop $0
DetailPrint "InitDriverSetup: $0"
InstDrv:😁eleteOemInfFiles /NOUNLOAD
Pop $0
DetailPrint "DeleteOemInfFiles: $0"
StrCmp $0 "00000000" PrintInfNames ContInst1
PrintInfNames:
Pop $0
DetailPrint "Deleted $0"
Pop $0
DetailPrint "Deleted $0"
ContInst1:
InstDrv::CreateDevice /NOUNLOAD
Pop $0
DetailPrint "CreateDevice: $0"
SetOutPath $TEMP
File "ircomm2k.inf"
File "ircomm2k.sys"
InstDrv::InstallDriver /NOUNLOAD "$TEMP\ircomm2k.inf"
Pop $0
DetailPrint "InstallDriver: $0"
StrCmp $0 "00000000" PrintReboot ContInst2
PrintReboot:
Pop $0
DetailPrint "Reboot: $0"
ContInst2:
InstDrv::CountDevices
Pop $0
DetailPrint "CountDevices: $0"
SectionEnd
Section "Uninstall the driver again" UninstDriver
InstDrv::InitDriverSetup /NOUNLOAD "{4d36e978-e325-11ce-bfc1-08002be10318}" "IrCOMM2k"
Pop $0
DetailPrint "InitDriverSetup: $0"
InstDrv:😁eleteOemInfFiles /NOUNLOAD
Pop $0
DetailPrint "DeleteOemInfFiles: $0"
StrCmp $0 "00000000" PrintInfNames ContUninst1
PrintInfNames:
Pop $0
DetailPrint "Deleted $0"
Pop $0
DetailPrint "Deleted $0"
ContUninst1:
InstDrv::RemoveAllDevices
Pop $0
DetailPrint "RemoveAllDevices: $0"
StrCmp $0 "00000000" PrintReboot ContUninst2
PrintReboot:
Pop $0
DetailPrint "Reboot: $0"
ContUninst2:
Delete "$SYSDIR\system32\ircomm2k.sys"
SectionEnd
And also i have changed hardware ID in INF file also.But this is not taken.I'm getting an error CreateDevice::E0000205.
I tried same example script that given in NSIS link with "USB\IrCOMM2k" Hardware ID.Just see the following text:
#
# InstDrv Example, (c) 2003 Jan Kiszka (Jan Kiszka@web.de)
#
Name "InstDrv.dll test"
OutFile "InstDrv-Test.exe"
ShowInstDetails show
ComponentText "InstDrv Plugin Usage Example"
Page components
Page instfiles
Section "Install a Driver" InstDriver
InstDrv::InitDriverSetup /NOUNLOAD "{4d36e978-e325-11ce-bfc1-08002be10318}" "USB\IrCOMM2k"
Pop $0
DetailPrint "InitDriverSetup: $0"
InstDrv:😁eleteOemInfFiles /NOUNLOAD
Pop $0
DetailPrint "DeleteOemInfFiles: $0"
StrCmp $0 "00000000" PrintInfNames ContInst1
PrintInfNames:
Pop $0
DetailPrint "Deleted $0"
Pop $0
DetailPrint "Deleted $0"
ContInst1:
InstDrv::CreateDevice /NOUNLOAD
Pop $0
DetailPrint "CreateDevice: $0"
SetOutPath $TEMP
File "ircomm2k.inf"
File "ircomm2k.sys"
InstDrv::InstallDriver /NOUNLOAD "$TEMP\ircomm2k.inf"
Pop $0
DetailPrint "InstallDriver: $0"
StrCmp $0 "00000000" PrintReboot ContInst2
PrintReboot:
Pop $0
DetailPrint "Reboot: $0"
ContInst2:
InstDrv::CountDevices
Pop $0
DetailPrint "CountDevices: $0"
SectionEnd
Section "Uninstall the driver again" UninstDriver
InstDrv::InitDriverSetup /NOUNLOAD "{4d36e978-e325-11ce-bfc1-08002be10318}" "IrCOMM2k"
Pop $0
DetailPrint "InitDriverSetup: $0"
InstDrv:😁eleteOemInfFiles /NOUNLOAD
Pop $0
DetailPrint "DeleteOemInfFiles: $0"
StrCmp $0 "00000000" PrintInfNames ContUninst1
PrintInfNames:
Pop $0
DetailPrint "Deleted $0"
Pop $0
DetailPrint "Deleted $0"
ContUninst1:
InstDrv::RemoveAllDevices
Pop $0
DetailPrint "RemoveAllDevices: $0"
StrCmp $0 "00000000" PrintReboot ContUninst2
PrintReboot:
Pop $0
DetailPrint "Reboot: $0"
ContUninst2:
Delete "$SYSDIR\system32\ircomm2k.sys"
SectionEnd
And also i have changed hardware ID in INF file also.But this is not taken.I'm getting an error CreateDevice::E0000205.
I found that same error code reported by other people, so you aren't the first. http://forums.winamp.com/showthread.php?t=147002.
Hi Jason,
Is there any solution to fix that?
Thanks,
Raja
Is there any solution to fix that?
Thanks,
Raja
Well, you could call UpdateDriverForPlugAndPlayDevices() directly with the system plugin and get rid of Instdrv.
[edit] Even better, write separate 32bit and 64bit mini-programs to install the driver, and then detect which version you need to run and run it with ExecWait.
[edit] Even better, write separate 32bit and 64bit mini-programs to install the driver, and then detect which version you need to run and run it with ExecWait.
Thanks Jason,
Will you please send me that DLL plugin which accepts "USB\VID_1567&PID_4444" HardwareID ,If you already have that one?
Thanks,
Raja.
Will you please send me that DLL plugin which accepts "USB\VID_1567&PID_4444" HardwareID ,If you already have that one?
Thanks,
Raja.
The system plugin is included with NSIS.
Hi Jason,
I think you are telling about "INSTDRV" plugin.I have that one.But if i execute my .exe file it showing "CreateDevice::E0000205" error.I think it is not taking our ID(USB\VID_1618&PID_4444).
I think you are telling about "INSTDRV" plugin.I have that one.But if i execute my .exe file it showing "CreateDevice::E0000205" error.I think it is not taking our ID(USB\VID_1618&PID_4444).
I took from following Website...
Are you trying to install a 64bit driver? Instdrv will throw an error for sure.
Ya thats ok.Plugin won't work in 64 bit.BUt i'm using 32 bit only..
Thanks,
Raja.
Thanks,
Raja.
Yeah, but is the OS 64bit? 64bit OS's take 64bit drivers. 32bit OS's take 32bit drivers. You can't mix and match.
Hi Jason,
No i'm using 32 bit only.And driver also 32 bit.If i remove that "\" ,its working fine.But i need that slash for Registry path.
No i'm using 32 bit only.And driver also 32 bit.If i remove that "\" ,its working fine.But i need that slash for Registry path.
I can't help any further with Instdrv. Maybe try exploring other methods until you find one that works (I outlined two of them earlier).
Hi Jason,
I am trying to add my own code for DLL.And if i execute the code which is given in the webside,i am getting the below error code:
'/ZI' and '/Gy-' command-line options are incompatible .
How to solve that issue?.
Thanks!!
I am trying to add my own code for DLL.And if i execute the code which is given in the webside,i am getting the below error code:
'/ZI' and '/Gy-' command-line options are incompatible .
How to solve that issue?.
Thanks!!
/Zl is for debug builds, remove it.