Card Bus Card Installations

Can somebody explain, why windows always has to re-install the driver when plugging the identical card (id’s the same) into a different card bus slot. I have a miniport driver, which can handle multiple adapters on the the same driver. Is there something in the inf file that I can set to prevent this happening? or is this just windows standard behaviour.

P.S. I have seen this happen on other cards produced by other manufacturers?

Thanks

Steve

This is a normal behavior if the card has no unique ID, same occurs with
USB devices. No INF file tricks can help, update the hardware.


Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com

wrote in message news:xxxxx@ntdev…
> Can somebody explain, why windows always has to re-install the driver when
plugging the identical card (id’s the same) into a different card bus slot. I
have a miniport driver, which can handle multiple adapters on the the same
driver. Is there something in the inf file that I can set to prevent this
happening? or is this just windows standard behaviour.
>
> P.S. I have seen this happen on other cards produced by other manufacturers?
>
> Thanks
>
> Steve
>
>

Hi Maxim

We have a unique vendor id and product id? in the hardware? why should it
want to load up another instance of the driver

Steve

----- Original Message -----
From: “Maxim S. Shatskih”
Newsgroups: ntdev
To: “Windows System Software Devs Interest List”
Sent: Thursday, October 18, 2007 10:20 AM
Subject: Re:[ntdev] Card Bus Card Installations

> This is a normal behavior if the card has no unique ID, same occurs
> with
> USB devices. No INF file tricks can help, update the hardware.
>
> –
> Maxim Shatskih, Windows DDK MVP
> StorageCraft Corporation
> xxxxx@storagecraft.com
> http://www.storagecraft.com
>
> wrote in message news:xxxxx@ntdev…
>> Can somebody explain, why windows always has to re-install the driver
>> when
> plugging the identical card (id’s the same) into a different card bus
> slot. I
> have a miniport driver, which can handle multiple adapters on the the same
> driver. Is there something in the inf file that I can set to prevent this
> happening? or is this just windows standard behaviour.
>>
>> P.S. I have seen this happen on other cards produced by other
>> manufacturers?
>>
>> Thanks
>>
>> Steve
>>
>>
>
>
> —
> NTDEV is sponsored by OSR
>
> For our schedule of WDF, WDM, debugging and other seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>
>
>

Yes, this happens for any vendor and is not specific to card bus, it can happen on any bus. If the device has a unique identifier which can differentiate it from another instance of the same card and the bus can find this value, this will not happen. For instance, a usb device can have a serial number and if present, we can report this serial number and use it to identify the device regardless of the port it is plugged into. OTOH, if there is no serial number, we have no idea if the device that is plugged into a different slot is the same device as was in the old slot, so it is treated as a new device.

d

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@bemac.com
Sent: Thursday, October 18, 2007 2:07 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] Card Bus Card Installations

Can somebody explain, why windows always has to re-install the driver when plugging the identical card (id’s the same) into a different card bus slot. I have a miniport driver, which can handle multiple adapters on the the same driver. Is there something in the inf file that I can set to prevent this happening? or is this just windows standard behaviour.

P.S. I have seen this happen on other cards produced by other manufacturers?

Thanks

Steve


NTDEV is sponsored by OSR

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer

Doron Holan wrote:

Yes, this happens for any vendor and is not specific to card bus, it can happen on any bus. If the device has a unique identifier which can differentiate it from another instance of the same card and the bus can find this value, this will not happen. For instance, a usb device can have a serial number and if present, we can report this serial number and use it to identify the device regardless of the port it is plugged into. OTOH, if there is no serial number, we have no idea if the device that is plugged into a different slot is the same device as was in the old slot, so it is treated as a new device.

If I may theorize as to the underlying justification for this, remember
that every leaf key in the CurrentControlSet\Enum tree of the registry
supports exactly one device. If a USB device were identified solely by
VID and PID, you could plug two of them into two slots, and there would
be no way to distinguish them. So, the hub and slot numbers are used to
create a hash that makes the device unique.

The only way to create a new entry in the Enum tree is to go through the
driver installation process.

Remember that if you plug into slot 1, then into slot 2, then back into
slot 1, you do NOT get a third install. The slot path essentially
becomes the serial number for the device.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Hi Doron,

If you have a single sys file that can manage more than one adapter, how
does this work, e.g. if the sys file is already running and it tries to
install a new one, and the registry location for the sys is already taken by
the previous installation?. I have seen it cause the registry to get
totally confused, causing me to revert back to a time when no cards were
installed. I tried to remove the enumeration entries by hand but this didnt
work.It sounds like windows should handle all this, but its not doing a
very good job of it?

So I guess the question is what should we do. The installation is mearly an
inf file? the card is an ethernet adapter. can you limit it to a single
adapter only? and how do you do it? or what is the best way to do this.

Regards

Steve

----- Original Message -----
From: “Tim Roberts”
To: “Windows System Software Devs Interest List”
Sent: Thursday, October 18, 2007 6:36 PM
Subject: Re: [ntdev] Card Bus Card Installations

> Doron Holan wrote:
>> Yes, this happens for any vendor and is not specific to card bus, it can
>> happen on any bus. If the device has a unique identifier which can
>> differentiate it from another instance of the same card and the bus can
>> find this value, this will not happen. For instance, a usb device can
>> have a serial number and if present, we can report this serial number and
>> use it to identify the device regardless of the port it is plugged into.
>> OTOH, if there is no serial number, we have no idea if the device that is
>> plugged into a different slot is the same device as was in the old slot,
>> so it is treated as a new device.
>>
>
> If I may theorize as to the underlying justification for this, remember
> that every leaf key in the CurrentControlSet\Enum tree of the registry
> supports exactly one device. If a USB device were identified solely by
> VID and PID, you could plug two of them into two slots, and there would
> be no way to distinguish them. So, the hub and slot numbers are used to
> create a hash that makes the device unique.
>
> The only way to create a new entry in the Enum tree is to go through the
> driver installation process.
>
> Remember that if you plug into slot 1, then into slot 2, then back into
> slot 1, you do NOT get a third install. The slot path essentially
> becomes the serial number for the device.
>
> –
> Tim Roberts, xxxxx@probo.com
> Providenza & Boekelheide, Inc.
>
>
> —
> NTDEV is sponsored by OSR
>
> For our schedule of WDF, WDM, debugging and other seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>
>
>

> and the registry location for the sys is already taken by the previous installation?
That doesn’t happen. Each plugged in device has its own registry path (or device instance path in the higher level of abstraction in setupapi). Windows does handle this, as soon as you start whacking the Enum branch manually, all bets are off b/c the system is now in an unknown state.

Why do you want to limit the installation one adapter? b/c of the issues above or because there is a real business reason to do so?

d

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Steve Pratt
Sent: Friday, October 19, 2007 12:43 AM
To: Windows System Software Devs Interest List
Subject: Re: [ntdev] Card Bus Card Installations

Hi Doron,

If you have a single sys file that can manage more than one adapter, how
does this work, e.g. if the sys file is already running and it tries to
install a new one, and the registry location for the sys is already taken by
the previous installation?. I have seen it cause the registry to get
totally confused, causing me to revert back to a time when no cards were
installed. I tried to remove the enumeration entries by hand but this didnt
work.It sounds like windows should handle all this, but its not doing a
very good job of it?

So I guess the question is what should we do. The installation is mearly an
inf file? the card is an ethernet adapter. can you limit it to a single
adapter only? and how do you do it? or what is the best way to do this.

Regards

Steve

----- Original Message -----
From: “Tim Roberts”
To: “Windows System Software Devs Interest List”
Sent: Thursday, October 18, 2007 6:36 PM
Subject: Re: [ntdev] Card Bus Card Installations

> Doron Holan wrote:
>> Yes, this happens for any vendor and is not specific to card bus, it can
>> happen on any bus. If the device has a unique identifier which can
>> differentiate it from another instance of the same card and the bus can
>> find this value, this will not happen. For instance, a usb device can
>> have a serial number and if present, we can report this serial number and
>> use it to identify the device regardless of the port it is plugged into.
>> OTOH, if there is no serial number, we have no idea if the device that is
>> plugged into a different slot is the same device as was in the old slot,
>> so it is treated as a new device.
>>
>
> If I may theorize as to the underlying justification for this, remember
> that every leaf key in the CurrentControlSet\Enum tree of the registry
> supports exactly one device. If a USB device were identified solely by
> VID and PID, you could plug two of them into two slots, and there would
> be no way to distinguish them. So, the hub and slot numbers are used to
> create a hash that makes the device unique.
>
> The only way to create a new entry in the Enum tree is to go through the
> driver installation process.
>
> Remember that if you plug into slot 1, then into slot 2, then back into
> slot 1, you do NOT get a third install. The slot path essentially
> becomes the serial number for the device.
>
> –
> Tim Roberts, xxxxx@probo.com
> Providenza & Boekelheide, Inc.
>
>
> —
> NTDEV is sponsored by OSR
>
> For our schedule of WDF, WDM, debugging and other seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>
>
>


NTDEV is sponsored by OSR

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer

Hi Doron,

Ok will get the datails of what is happening in the registry and get back to
you when it occurs. I dont touch the registry Windows handles all this. The
only reason for limiting it to one adapter, is on a temp basis for a
demonstration, while I work on the problem, and so the team using the
adapter dont mangle the registry, by plugging into another slot and
re-installing the driver? which seems to cause the issue, however when I
tried it myself I could not find any problem, as returning it to the
original slot the system just worked as normal. However the labtop in
question, I was forced to sanitise the registry by reverting back to a
restore point before the driver was installed with no clear reason as to why
it had got into that state. The only thing that w\s performed was a
re-install of the driver, due to a slot change? so I am not convinced that
windows is behaving as it should on that particular machine. Which is an
Acer Labtop.travelmate.

Regards

Steve

----- Original Message -----
From: “Doron Holan”
To: “Windows System Software Devs Interest List”
Sent: Tuesday, October 23, 2007 1:01 AM
Subject: RE: [ntdev] Card Bus Card Installations

>> and the registry location for the sys is already taken by the previous
>> installation?
> That doesn’t happen. Each plugged in device has its own registry path (or
> device instance path in the higher level of abstraction in setupapi).
> Windows does handle this, as soon as you start whacking the Enum branch
> manually, all bets are off b/c the system is now in an unknown state.
>
> Why do you want to limit the installation one adapter? b/c of the issues
> above or because there is a real business reason to do so?
>
> d
>
> -----Original Message-----
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com] On Behalf Of Steve Pratt
> Sent: Friday, October 19, 2007 12:43 AM
> To: Windows System Software Devs Interest List
> Subject: Re: [ntdev] Card Bus Card Installations
>
> Hi Doron,
>
> If you have a single sys file that can manage more than one adapter, how
> does this work, e.g. if the sys file is already running and it tries to
> install a new one, and the registry location for the sys is already taken
> by
> the previous installation?. I have seen it cause the registry to get
> totally confused, causing me to revert back to a time when no cards were
> installed. I tried to remove the enumeration entries by hand but this
> didnt
> work.It sounds like windows should handle all this, but its not doing a
> very good job of it?
>
> So I guess the question is what should we do. The installation is mearly
> an
> inf file? the card is an ethernet adapter. can you limit it to a single
> adapter only? and how do you do it? or what is the best way to do this.
>
> Regards
>
> Steve
>
>
>
> ----- Original Message -----
> From: “Tim Roberts”
> To: “Windows System Software Devs Interest List”
> Sent: Thursday, October 18, 2007 6:36 PM
> Subject: Re: [ntdev] Card Bus Card Installations
>
>
>> Doron Holan wrote:
>>> Yes, this happens for any vendor and is not specific to card bus, it can
>>> happen on any bus. If the device has a unique identifier which can
>>> differentiate it from another instance of the same card and the bus can
>>> find this value, this will not happen. For instance, a usb device can
>>> have a serial number and if present, we can report this serial number
>>> and
>>> use it to identify the device regardless of the port it is plugged into.
>>> OTOH, if there is no serial number, we have no idea if the device that
>>> is
>>> plugged into a different slot is the same device as was in the old slot,
>>> so it is treated as a new device.
>>>
>>
>> If I may theorize as to the underlying justification for this, remember
>> that every leaf key in the CurrentControlSet\Enum tree of the registry
>> supports exactly one device. If a USB device were identified solely by
>> VID and PID, you could plug two of them into two slots, and there would
>> be no way to distinguish them. So, the hub and slot numbers are used to
>> create a hash that makes the device unique.
>>
>> The only way to create a new entry in the Enum tree is to go through the
>> driver installation process.
>>
>> Remember that if you plug into slot 1, then into slot 2, then back into
>> slot 1, you do NOT get a third install. The slot path essentially
>> becomes the serial number for the device.
>>
>> –
>> Tim Roberts, xxxxx@probo.com
>> Providenza & Boekelheide, Inc.
>>
>>
>> —
>> NTDEV is sponsored by OSR
>>
>> For our schedule of WDF, WDM, debugging and other seminars visit:
>> http://www.osr.com/seminars
>>
>> To unsubscribe, visit the List Server section of OSR Online at
>> http://www.osronline.com/page.cfm?name=ListServer
>>
>>
>>
>
>
>
> —
> NTDEV is sponsored by OSR
>
> For our schedule of WDF, WDM, debugging and other seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>
> —
> NTDEV is sponsored by OSR
>
> For our schedule of WDF, WDM, debugging and other seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>
>
>