|
The technique I marked as "SOLVED" works only for XP Pro. In XP Pro, the CopyFile-sections of the INF file are executed. This means that the relevant driver files (*.sys) are copied to C:\Windows\system32\drivers. In Windows Embedded Standard, the CopyFile-sections are not executed - only INF and CAT files are installed. This means that the files have to be copied manually.
Why WES works this way, I am not sure. It could be that some crucial component has not been included in the image. I did not create the image, so I really have no idea.
So, for WES you have to either copy the files manually during a DUA update, or you can use Walter Oney's FASTINST if you have access to that.
For those of you who need to do this on Vista and later operating systems, there's a function called DiInstallDriver() that seems to solve pretty much everything for you. You just need the driver media (*.sys et al) and the INF/CAT files. I can't grasp why this function wasn't added eons ago...
--
Kein Mitleid Für Die Mehrheit
|
|
|
|
|
You can do it programatically using CopyOEMInf().
Basically it just registers the inf file with the system and puts the relevant files in the right place.
Morality is indistinguishable from social proscription
|
|
|
|
|
It doesn't work. It's been a while, but if I recall correctly, it doesn't execute class installers, and update the appropriate PnP-IDs, etc.
Turns out that Vista has a really nice driver installation API, but XP doesn't. I found a working example in a book (I mention above).
--
Kein Mitleid Für Die Mehrheit
|
|
|
|
|
Ahmk you are tyalking about any upgrade,in that case use the setupdiupdatedriverforpnpdevice (or somehting like that). This worls for all windows oss
Morality is indistinguishable from social proscription
|
|
|
|
|
Hi, I have an old laptop dell latitude c600. It has a problem with its keyboard so I replace it witht he new one from dell company. The problem is the key C, and N could not type. After relate around 6 month, the new keyboard has a problem again. So I decide to purchase an external USB keyboard to use with this laptop because it is cheaper.
But using around 6 month again, the external keyboard also got a problem with the key C and N again (I could not type it). Why? Is it the problem with the keyboard or the laptop? I tough it was the problem with the laptop. So I try to used this external keyboard with the other computer but the problem is still the same. They key C and N is having a problem. I don't know why the problem just had with the laptop now its come to the external keyboard.
Does anyone know what is the cause of the problem and how to solve that problem?
Thank in advance!!!
|
|
|
|
|
Strange. Coincidence? Are you using the C and N keys aggressively?
|
|
|
|
|
Indivara wrote: Strange
Yes, it also strange to me too.
Indivara wrote: Are you using the C and N keys aggressively?
No, I use this keyboard very gentle. Actually, I also have another destkop computer to use. So it is very less chance for me to make someting wrong with the keyboard. I use it as normal and really love my computer.
Do you have any more idea about this problem?
|
|
|
|
|
Curioser and curioser...
Just listing the posssibilities -
* Virus messing with the hardware (has happened in the past) - but that would mean other keyboards on the second computer should be affected too
* Dirt in keyboard - but this couldn't possibly happen to the same keys on three keyboards
* Controller error on laptop - but the external keyboard shows the same symptoms on another computer
* Electrical fault on laptop burning out same keys on external keyboard - is this possible? No idea...
* Practical joke?
Trying another keyboard is the only thing I can think of now.
|
|
|
|
|
Does anybody have a clue as how to do this? I'm guessing the SetupDiXXX() functions in the DDK could help me, but I'm not sure. The API isn't all that intuitive.
--
Kein Mitleid Für Die Mehrheit
|
|
|
|
|
I expect WMI to hold all such information. Try the Win32_SerialPort class.
Luc Pattyn
I only read code that is properly indented, and rendered in a non-proportional font; hint: use PRE tags in forum messages
|
|
|
|
|
Hi Jörgen,
I would suggest that you have a look at the EnumSerialPorts class[^] by Microsoft MVP P.J. Naughter. His class includes WMI along with the Setup API functions and every other possible method of enumerating COM ports. You should easily be able to modify his class to identify the vendor.
Best Wishes,
-David Delaune
|
|
|
|
|
Oooh. I had already found a solution to my problem, but I think I'll go with PJ's class instead, as it's tested and more mature than my single function.
Thank you for the link!
--
Kein Mitleid Für Die Mehrheit
|
|
|
|
|
|
I don't read Chinese.
--
Kein Mitleid Für Die Mehrheit
|
|
|
|
|
Argh. It was such a sweet idea, but I'm blown to hell by some of the device drivers I'm targetting. They don't seem to provide any information to WMI, so they're invisible to WMI queries, but visible with my SetupDIXXX()-implementation.
--
Kein Mitleid Für Die Mehrheit
|
|
|
|
|
Yeah in my opinion WMI is not suitable for robust hardware enumeration. You are making the right choice by using the SetupDi class of API functions. I probably would have used the PnP Configuration Manager Functions[^] even though it seems Microsoft does not recommend calling them directly.
Best Wishes,
-David Delaune
|
|
|
|
|
WMI is not mandatory!
Actually I never imnplemented it.
Basically you will need to enumerate the serial (GUID) devices from your app. Get the friendly nmame for each device, and if it is the right port (this is the name displayed in device manager) then you go ahead and use it.
OK, I;ll be nice and bung you some code to help:
SetupDiGetClassDevs(); Thiks gives you a kind of handle to an array.
Call SetupDiEnumDeviceInterfaces(); for each device in sdaid 'array'.
With the info from this call SetupDiGetDeviceInterfaceDetail(), then call
SetupDiOpenDeviceInterface();
Then call SetupDiGetDeviceRegistryProperty() SPDRP_FRIENDLYNAME and SPDRP_DEVICEDESC for example.
If you agree that GW is a crock of chit I'll mail you some code.
Morality is indistinguishable from social proscription
|
|
|
|
|
fat_boy wrote: If you agree that GW is a crock of chit I'll mail you some code. Poke tongue
I solved it using SetupDiEnumDeviceInterfaces() et al! So, no, I am not going to admit anything than greaaaaaaaat succeeess!
--
Kein Mitleid Für Die Mehrheit
|
|
|
|
|
Jörgen Sigvardsson wrote: I solved it using SetupDiEnumDeviceInterfaces() et al!
Yep, I'll bet it felt like giving birth to a water mellon!
Mind you, these funcs get easier to use the more you use them.
Morality is indistinguishable from social proscription
|
|
|
|
|
Well, I'm not going to venture into these territories again, if I don't really have to. My role is somewhere right above driver level all the way up to the UI.
The reason I had to do this was because of poor planning. We have devices running Windows Embedded that have already been deployed with a certain image/OS configuration. The new hardware requirement came after the deployment, so I had to find a way to install the driver in a device update script.
But I must say I've learned a lot about how Windows works. I've read a couple of device driver programming books as well as windows internals books (Russinovich et al). I've also had to figure stuff out on my own. Stuff that can be added to the CV, and mentioned i future job interviews.
--
Kein Mitleid Für Die Mehrheit
|
|
|
|
|
Its a usefull (!!!) set of functions. You can disable a device for example to cause a power reset, but, as you say, they are a little bizare.
Of course as a kernel expert al this kind of stuff is bread and buter to me. For me to write an app now is just too dull. I guess I have spent so long messing around in the kernel that user mode is just too easy.
Its always uefull to know at least some of this stuff though.
Morality is indistinguishable from social proscription
|
|
|
|
|
Hi, I'm trying to consolidate my servers and decided to virtualize some of the applications that are not that critical in our company. Could anyone tell me what is the best specs for the server when using virtualization. Your help will surely appreciated. Thanks in advance.
|
|
|
|
|
Since you haven't said anything about the number of servers you want to virtualize, what type of servers they are, what those servers are responsible for, what their average and peak loads are, storage requirements for data, future plans for the next 5 years, what expansion capabilities you want, ...yada, yada, yada ... noone can give you any kind of information that would be of any use.
|
|
|
|
|
This guide will show you how to put DVD movies and downloaded/purchased videos on the Sony Walkman with DVD to Walkman Suite.
http://www.aidownloading.com/images/guide/sony-walkman.gif
Part One: How to rip DVD to Walkman supported video/audio
Part Two: How to convert video/audio to Walkman supported video/audio
Make Preparations: Download DVD to Walkman Suite.
http://www.aidownloading.com/images/guide/dvd-to-walkman-suite.jpg
Part One: How to rip DVD to Walkman supported video/audio
First, click "DVD to Walkman Converter" on the main interface to run DVD to Walkman Converter.
http://www.aidownloading.com/images/guide/dvd-to-walkman-converter.gif
Step 1. Open your DVD Drive and put your DVD in it, then click "Load DVD" and choose "Load DVD" to load your DVD into this program.
Step 2. Choose your output format from the "profile" drop-down list.
After you choose your output format, you can adjust your output video's settings, such as "Resolution", "Frame Rate", "Bitrate", "Sample Rate" and so on.
Step 3. Click "Start" now to begin your conversion and you will get your video soon.
Part Two: How to convert video/audio to Walkman supported video/audio
First, click "Walkman Video Converter" on the main interface to run Walkman Video Converter
http://www.aidownloading.com/images/guide/walkman-video-converter.gif
Step 1. Click "Add File" to load the video you want to convert.
Step 2. Choose output format by clicking "profile" and customize your own output video by clicking "settings" to adjust the Resolution, Frame Rate, Bitrate and so on.
Before you click "Start" to begin your conversion, you can do some editing works, such as pick up a part of your video to convert(trim), choose your own play region(crop) and put two or more files into one.(merge into one file).
Step 3. OK, now you can begin your conversion by clicking "Start" button.
Done!
|
|
|
|
|
Why do you insist on posting this crap??
|
|
|
|