Hi Everyone.
I’ve been working on our company’s co-installer for our drivers, and have
come across a very disturbing prolem.
The problem is that i’m not getting the DIF_FINISHINSTALL_ACTION DIF code ,
although i set the flag DI_FLAGSEX_FINISHINSTALL_ACTION in the
DIF_NEWDEVICEWIZARD_FINISHINSTALL code handler. I am using the exact same
code as described in the MSDN.
I’m working on VS2005 and WDK 5840 for Vista.
After some mode investigation I found out exactly what went wrong. I’m
calling SetupDiGetDeviceInstallParams to get the install params, then set
the flag for finish action, and then need to call the
SetupDiSetDeviceInstallParams.
The problem in Vista64 (only this OS) is that this call fails with error
code 1784 which is “The supplied user buffer is not valid for the requested
operation.” . There is absolutly no problem when using the same code on XP,
XP64 and Vista32 (Co-installer compiled for x86 and x64 out of the same
code.
I have searched the net for any information about this, but could not find
any. The error message is also a puzzle to me - what user buffer ? the
SetupDiGetDeviceInstallParams receives no user buffer - only API defined
structures. very strange.
Any help would be greatly appreciated.
Best regards,
Chen Ganir
I’ve searched the web for help and could not find any. any help would be
appreciated
At minimum you should of course upgrade to the RTM Vista DDK (build
6000).
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Chen Ganir
Sent: Wednesday, December 06, 2006 8:21 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] Co-installer on Vista 64 RTM (6000)
Hi Everyone.
I’ve been working on our company’s co-installer for our drivers, and
have come across a very disturbing prolem.
The problem is that i’m not getting the DIF_FINISHINSTALL_ACTION DIF
code , although i set the flag DI_FLAGSEX_FINISHINSTALL_ACTION in the
DIF_NEWDEVICEWIZARD_FINISHINSTALL code handler. I am using the exact
same code as described in the MSDN.
I’m working on VS2005 and WDK 5840 for Vista.
After some mode investigation I found out exactly what went wrong. I’m
calling SetupDiGetDeviceInstallParams to get the install params, then
set the flag for finish action, and then need to call the
SetupDiSetDeviceInstallParams. The problem in Vista64 (only this OS) is
that this call fails with error code 1784 which is “The supplied user
buffer is not valid for the requested operation.” . There is absolutly
no problem when using the same code on XP, XP64 and Vista32
(Co-installer compiled for x86 and x64 out of the same code.
I have searched the net for any information about this, but could not
find any. The error message is also a puzzle to me - what user buffer ?
the SetupDiGetDeviceInstallParams receives no user buffer - only API
defined structures. very strange.
Any help would be greatly appreciated.
Best regards,
Chen Ganir
I’ve searched the web for help and could not find any. any help would be
appreciated
— Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256 To unsubscribe, visit the
List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer
Hi.
Thanks for the quick response. Why do you think WDK RTM 6000 will solve a problem i am experiencing only with Vista64 and not with Vista32 or any other OS ?
thanks,
Chen Ganir
I don’t know if it will change anything, I am merely suggesting that it
would be a good idea to use the released, rather than some beta, version
of the product. Do you intend to ship commercial products built with
some interim beta version of the DDK?
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@gmail.com
Sent: Wednesday, December 06, 2006 9:07 AM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] Co-installer on Vista 64 RTM (6000)
Hi.
Thanks for the quick response. Why do you think WDK RTM 6000 will solve
a problem i am experiencing only with Vista64 and not with Vista32 or
any other OS ?
thanks,
Chen Ganir
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer
Try to align your buffer (or API defined structures)
at least on 16 bytes, maybe even on 128.
–PA
“Chen Ganir” wrote in message news:xxxxx@ntdev…
> Hi Everyone.
>
> I’ve been working on our company’s co-installer for our drivers, and have
> come across a very disturbing prolem.
>
> The problem is that i’m not getting the DIF_FINISHINSTALL_ACTION DIF code ,
> although i set the flag DI_FLAGSEX_FINISHINSTALL_ACTION in the
> DIF_NEWDEVICEWIZARD_FINISHINSTALL code handler. I am using the exact same
> code as described in the MSDN.
>
> I’m working on VS2005 and WDK 5840 for Vista.
>
> After some mode investigation I found out exactly what went wrong. I’m
> calling SetupDiGetDeviceInstallParams to get the install params, then set
> the flag for finish action, and then need to call the
> SetupDiSetDeviceInstallParams.
> The problem in Vista64 (only this OS) is that this call fails with error
> code 1784 which is “The supplied user buffer is not valid for the requested
> operation.” . There is absolutly no problem when using the same code on XP,
> XP64 and Vista32 (Co-installer compiled for x86 and x64 out of the same
> code.
>
> I have searched the net for any information about this, but could not find
> any. The error message is also a puzzle to me - what user buffer ? the
> SetupDiGetDeviceInstallParams receives no user buffer - only API defined
> structures. very strange.
>
> Any help would be greatly appreciated.
>
> Best regards,
> Chen Ganir
>
>
> I’ve searched the web for help and could not find any. any help would be
> appreciated
>