KMDF driver supporting multiple versions of a PCI card

Given the following PCI HBAs:

SiI 3124 (4 channel)
SiI 3132 (2 channel)

I need to support both of these cards with run driver. What happens now is
that one instance in device manager will be flagged disabled and the other
one enabled. Enabling the disabled one will request that the system power
down after which the reverse is true. I’m suspecting I need to add a
hardware ID to the device object in EvtDevice add to tell the system to
“hook” the other device and call AddDevice for it. The reason I have not
done that is that I cannot find the format for the Device/Hardware IDs.
When I click on the link in the KMDF documents, I get a “page cannot be
displayed” error. The RawPdo driver uses WdfPdoInitAddHardwareID, and that
ID looks like “\Keyboard Filter”. I’d certainly like to know what
it should be; e.g. “\VEN_1095&DEV_3124”?

Or is there magic that needs to, or can be, done in the INF. A single INF
installs both cards.

Gary G. Little

Are you trying to write a bus driver?

I am not sure what you mean by “hook” the other device.

d

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@seagate.com
Sent: Tuesday, March 07, 2006 2:23 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] KMDF driver supporting multiple versions of a PCI card

Given the following PCI HBAs:

SiI 3124 (4 channel)
SiI 3132 (2 channel)

I need to support both of these cards with run driver. What happens now
is
that one instance in device manager will be flagged disabled and the
other
one enabled. Enabling the disabled one will request that the system
power
down after which the reverse is true. I’m suspecting I need to add a
hardware ID to the device object in EvtDevice add to tell the system to
“hook” the other device and call AddDevice for it. The reason I have not
done that is that I cannot find the format for the Device/Hardware IDs.
When I click on the link in the KMDF documents, I get a “page cannot be
displayed” error. The RawPdo driver uses WdfPdoInitAddHardwareID, and
that
ID looks like “\Keyboard Filter”. I’d certainly like to know what
it should be; e.g. “\VEN_1095&DEV_3124”?

Or is there magic that needs to, or can be, done in the INF. A single
INF
installs both cards.

Gary G. Little


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

Yes and no. We are writing diagnostic function drivers for these and
other SATA, PATA, SCSI and SAS HBAs. So Yes, we are now driving the
storage interconnect bus. And No, because we don’t expose any of the
channels (buses) or attached devices to the OS. It appears to be a single
PCI device with nothing attached, and no layering at all. We do want to
play by the rules as much as we can, but these really won’t be going into
the wild, as the vendor drivers are quite adequate for using them as
storage. Our drivers are for exposing stuff that you normally wouldn’t
ever want to expose to an app writer.

So how do we install this thing on a 3124 & a 3132 simultaneously?

I don’t know what he means by “hook”, either. :slight_smile:

Phil

Philip D. Barila
Seagate Technology LLC
(720) 684-1842

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Doron Holan
Sent: Tuesday, March 07, 2006 3:39 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] KMDF driver supporting multiple versions of a PCI
card

Are you trying to write a bus driver?

I am not sure what you mean by “hook” the other device.

d

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@seagate.com
Sent: Tuesday, March 07, 2006 2:23 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] KMDF driver supporting multiple versions of a PCI card

Given the following PCI HBAs:

SiI 3124 (4 channel)
SiI 3132 (2 channel)

I need to support both of these cards with run driver. What happens now
is
that one instance in device manager will be flagged disabled and the
other
one enabled. Enabling the disabled one will request that the system
power
down after which the reverse is true. I’m suspecting I need to add a
hardware ID to the device object in EvtDevice add to tell the system to
“hook” the other device and call AddDevice for it. The reason I have not
done that is that I cannot find the format for the Device/Hardware IDs.
When I click on the link in the KMDF documents, I get a “page cannot be
displayed” error. The RawPdo driver uses WdfPdoInitAddHardwareID, and
that
ID looks like “\Keyboard Filter”. I’d certainly like to know what
it should be; e.g. “\VEN_1095&DEV_3124”?

Or is there magic that needs to, or can be, done in the INF. A single
INF
installs both cards.

Gary G. Little


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


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

No, this is not a bus driver. I used “hook” for want of a better term, and
obviously that was inadequate. I want PDO’s created for each card in the
system, whether 3124 or 3132, since the same code can be used to run both.

This happens when you plug in two identical cards, I simply want to force
it to do the same for cards that are close siblings with the same
parentage.

What I just did, and which seems to work, was to do this in the INF file:

; For XP and later
[STX.NT$ARCH$]
; DisplayName Section DeviceId
; ----------- ------- --------
%SiI680.DRVDESC%=SiI680_Inst, PCI\VEN_1095&DEV_0680
%SiI3124.DRVDESC%=SiI3124_Inst, PCI\VEN_1095&DEV_3124,
PCI\VEN_1095&DEV_3132
;%SiI3132.DRVDESC%=SiI3132_Inst, PCI\VEN_1095&DEV_3132

Note that I commented out the last assignment line when I added two
hardware ID’s to the %SiI3124.DRVDESC% line. I’ll test this tomorrow, but
I may have simply loaded two instances with two calls to DriverEntry;
which, though livable, I do not want.

Something keeps nagging at me that doing this is a lot simpler than I am
trying to make it. I just forget what it is.

Gary G. Little

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Doron Holan
Sent: Tuesday, March 07, 2006 4:39 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] KMDF driver supporting multiple versions of a PCI
card

Are you trying to write a bus driver?

I am not sure what you mean by “hook” the other device.

d

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@seagate.com
Sent: Tuesday, March 07, 2006 2:23 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] KMDF driver supporting multiple versions of a PCI card

Given the following PCI HBAs:

SiI 3124 (4 channel)
SiI 3132 (2 channel)

I need to support both of these cards with run driver. What happens now
is
that one instance in device manager will be flagged disabled and the
other
one enabled. Enabling the disabled one will request that the system
power
down after which the reverse is true. I’m suspecting I need to add a
hardware ID to the device object in EvtDevice add to tell the system to
“hook” the other device and call AddDevice for it. The reason I have not
done that is that I cannot find the format for the Device/Hardware IDs.
When I click on the link in the KMDF documents, I get a “page cannot be
displayed” error. The RawPdo driver uses WdfPdoInitAddHardwareID, and
that
ID looks like “\Keyboard Filter”. I’d certainly like to know what
it should be; e.g. “\VEN_1095&DEV_3124”?

Or is there magic that needs to, or can be, done in the INF. A single
INF
installs both cards.

Gary G. Little


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


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

I just did … :slight_smile:

Gary G. Little

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Philip D Barila
Sent: Tuesday, March 07, 2006 4:57 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] KMDF driver supporting multiple versions of a PCI
card

Yes and no. We are writing diagnostic function drivers for these and
other SATA, PATA, SCSI and SAS HBAs. So Yes, we are now driving the
storage interconnect bus. And No, because we don’t expose any of the
channels (buses) or attached devices to the OS. It appears to be a single
PCI device with nothing attached, and no layering at all. We do want to
play by the rules as much as we can, but these really won’t be going into
the wild, as the vendor drivers are quite adequate for using them as
storage. Our drivers are for exposing stuff that you normally wouldn’t
ever want to expose to an app writer.

So how do we install this thing on a 3124 & a 3132 simultaneously?

I don’t know what he means by “hook”, either. :slight_smile:

Phil

Philip D. Barila
Seagate Technology LLC
(720) 684-1842

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Doron Holan
Sent: Tuesday, March 07, 2006 3:39 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] KMDF driver supporting multiple versions of a PCI
card

Are you trying to write a bus driver?

I am not sure what you mean by “hook” the other device.

d

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@seagate.com
Sent: Tuesday, March 07, 2006 2:23 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] KMDF driver supporting multiple versions of a PCI card

Given the following PCI HBAs:

SiI 3124 (4 channel)
SiI 3132 (2 channel)

I need to support both of these cards with run driver. What happens now
is
that one instance in device manager will be flagged disabled and the
other
one enabled. Enabling the disabled one will request that the system
power
down after which the reverse is true. I’m suspecting I need to add a
hardware ID to the device object in EvtDevice add to tell the system to
“hook” the other device and call AddDevice for it. The reason I have not
done that is that I cannot find the format for the Device/Hardware IDs.
When I click on the link in the KMDF documents, I get a “page cannot be
displayed” error. The RawPdo driver uses WdfPdoInitAddHardwareID, and
that
ID looks like “\Keyboard Filter”. I’d certainly like to know what
it should be; e.g. “\VEN_1095&DEV_3124”?

Or is there magic that needs to, or can be, done in the INF. A single
INF
installs both cards.

Gary G. Little


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


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


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

You only want one physical device running at a time? Otherwise, you can
just install your driver on both instances, no? or do you want to merge
both instances into one virtual device?

d

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@seagate.com
Sent: Tuesday, March 07, 2006 2:57 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] KMDF driver supporting multiple versions of a PCI
card

Yes and no. We are writing diagnostic function drivers for these and
other SATA, PATA, SCSI and SAS HBAs. So Yes, we are now driving the
storage interconnect bus. And No, because we don’t expose any of the
channels (buses) or attached devices to the OS. It appears to be a
single
PCI device with nothing attached, and no layering at all. We do want to
play by the rules as much as we can, but these really won’t be going
into
the wild, as the vendor drivers are quite adequate for using them as
storage. Our drivers are for exposing stuff that you normally wouldn’t
ever want to expose to an app writer.

So how do we install this thing on a 3124 & a 3132 simultaneously?

I don’t know what he means by “hook”, either. :slight_smile:

Phil

Philip D. Barila
Seagate Technology LLC
(720) 684-1842

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Doron Holan
Sent: Tuesday, March 07, 2006 3:39 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] KMDF driver supporting multiple versions of a PCI
card

Are you trying to write a bus driver?

I am not sure what you mean by “hook” the other device.

d

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@seagate.com
Sent: Tuesday, March 07, 2006 2:23 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] KMDF driver supporting multiple versions of a PCI card

Given the following PCI HBAs:

SiI 3124 (4 channel)
SiI 3132 (2 channel)

I need to support both of these cards with run driver. What happens now
is
that one instance in device manager will be flagged disabled and the
other
one enabled. Enabling the disabled one will request that the system
power
down after which the reverse is true. I’m suspecting I need to add a
hardware ID to the device object in EvtDevice add to tell the system to
“hook” the other device and call AddDevice for it. The reason I have not
done that is that I cannot find the format for the Device/Hardware IDs.
When I click on the link in the KMDF documents, I get a “page cannot be
displayed” error. The RawPdo driver uses WdfPdoInitAddHardwareID, and
that
ID looks like “\Keyboard Filter”. I’d certainly like to know what
it should be; e.g. “\VEN_1095&DEV_3124”?

Or is there magic that needs to, or can be, done in the INF. A single
INF
installs both cards.

Gary G. Little


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


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


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

I am still unclear what you are trying todo. Is 3124 and 3132 different
devices? If you are trying to install the same driver on 2 instances,
you can easily do that with the INF you have below. DriverEntry will be
called once, EvtDriverDeviceAdd will be called per device (so 2 if done
correctly).

d

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@seagate.com
Sent: Tuesday, March 07, 2006 2:58 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] KMDF driver supporting multiple versions of a PCI
card

No, this is not a bus driver. I used “hook” for want of a better term,
and
obviously that was inadequate. I want PDO’s created for each card in the
system, whether 3124 or 3132, since the same code can be used to run
both.

This happens when you plug in two identical cards, I simply want to
force
it to do the same for cards that are close siblings with the same
parentage.

What I just did, and which seems to work, was to do this in the INF
file:

; For XP and later
[STX.NT$ARCH$]
; DisplayName Section DeviceId
; ----------- ------- --------
%SiI680.DRVDESC%=SiI680_Inst, PCI\VEN_1095&DEV_0680
%SiI3124.DRVDESC%=SiI3124_Inst, PCI\VEN_1095&DEV_3124,
PCI\VEN_1095&DEV_3132
;%SiI3132.DRVDESC%=SiI3132_Inst, PCI\VEN_1095&DEV_3132

Note that I commented out the last assignment line when I added two
hardware ID’s to the %SiI3124.DRVDESC% line. I’ll test this tomorrow,
but
I may have simply loaded two instances with two calls to DriverEntry;
which, though livable, I do not want.

Something keeps nagging at me that doing this is a lot simpler than I am
trying to make it. I just forget what it is.

Gary G. Little

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Doron Holan
Sent: Tuesday, March 07, 2006 4:39 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] KMDF driver supporting multiple versions of a PCI
card

Are you trying to write a bus driver?

I am not sure what you mean by “hook” the other device.

d

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@seagate.com
Sent: Tuesday, March 07, 2006 2:23 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] KMDF driver supporting multiple versions of a PCI card

Given the following PCI HBAs:

SiI 3124 (4 channel)
SiI 3132 (2 channel)

I need to support both of these cards with run driver. What happens now
is
that one instance in device manager will be flagged disabled and the
other
one enabled. Enabling the disabled one will request that the system
power
down after which the reverse is true. I’m suspecting I need to add a
hardware ID to the device object in EvtDevice add to tell the system to
“hook” the other device and call AddDevice for it. The reason I have not
done that is that I cannot find the format for the Device/Hardware IDs.
When I click on the link in the KMDF documents, I get a “page cannot be
displayed” error. The RawPdo driver uses WdfPdoInitAddHardwareID, and
that
ID looks like “\Keyboard Filter”. I’d certainly like to know what
it should be; e.g. “\VEN_1095&DEV_3124”?

Or is there magic that needs to, or can be, done in the INF. A single
INF
installs both cards.

Gary G. Little


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


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


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

The 3124 and 3132 are both SiI SATA controllers. Both cards can be
controlled by the same driver with allowances for individual differences;
e.g. the 3124 has 4 channels but the 3132 has 2. We test and handle that
difference when we allocate memory for the channels. We may have drives to
test connected to both cards and would then like to run our diagnostics on
those drives without having to stop one card and start the other.

I had the epiphany to change the INF just before I left work. The quick test
I did showed that I was on the right path and you have now strengthened
that. Tomorrow I’ll verify that is what we want, or come back here with
another woe-is-me tale. :slight_smile:

The personal opinion of
Gary G. Little

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Doron Holan
Sent: Tuesday, March 07, 2006 5:05 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] KMDF driver supporting multiple versions of a PCI card

I am still unclear what you are trying todo. Is 3124 and 3132 different
devices? If you are trying to install the same driver on 2 instances,
you can easily do that with the INF you have below. DriverEntry will be
called once, EvtDriverDeviceAdd will be called per device (so 2 if done
correctly).

d

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@seagate.com
Sent: Tuesday, March 07, 2006 2:58 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] KMDF driver supporting multiple versions of a PCI
card

No, this is not a bus driver. I used “hook” for want of a better term,
and
obviously that was inadequate. I want PDO’s created for each card in the
system, whether 3124 or 3132, since the same code can be used to run
both.

This happens when you plug in two identical cards, I simply want to
force
it to do the same for cards that are close siblings with the same
parentage.

What I just did, and which seems to work, was to do this in the INF
file:

; For XP and later
[STX.NT$ARCH$]
; DisplayName Section DeviceId
; ----------- ------- --------
%SiI680.DRVDESC%=SiI680_Inst, PCI\VEN_1095&DEV_0680
%SiI3124.DRVDESC%=SiI3124_Inst, PCI\VEN_1095&DEV_3124,
PCI\VEN_1095&DEV_3132
;%SiI3132.DRVDESC%=SiI3132_Inst, PCI\VEN_1095&DEV_3132

Note that I commented out the last assignment line when I added two
hardware ID’s to the %SiI3124.DRVDESC% line. I’ll test this tomorrow,
but
I may have simply loaded two instances with two calls to DriverEntry;
which, though livable, I do not want.

Something keeps nagging at me that doing this is a lot simpler than I am
trying to make it. I just forget what it is.

Gary G. Little

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Doron Holan
Sent: Tuesday, March 07, 2006 4:39 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] KMDF driver supporting multiple versions of a PCI
card

Are you trying to write a bus driver?

I am not sure what you mean by “hook” the other device.

d

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@seagate.com
Sent: Tuesday, March 07, 2006 2:23 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] KMDF driver supporting multiple versions of a PCI card

Given the following PCI HBAs:

SiI 3124 (4 channel)
SiI 3132 (2 channel)

I need to support both of these cards with run driver. What happens now
is
that one instance in device manager will be flagged disabled and the
other
one enabled. Enabling the disabled one will request that the system
power
down after which the reverse is true. I’m suspecting I need to add a
hardware ID to the device object in EvtDevice add to tell the system to
“hook” the other device and call AddDevice for it. The reason I have not
done that is that I cannot find the format for the Device/Hardware IDs.
When I click on the link in the KMDF documents, I get a “page cannot be
displayed” error. The RawPdo driver uses WdfPdoInitAddHardwareID, and
that
ID looks like “\Keyboard Filter”. I’d certainly like to know what
it should be; e.g. “\VEN_1095&DEV_3124”?

Or is there magic that needs to, or can be, done in the INF. A single
INF
installs both cards.

Gary G. Little


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


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


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


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

NOD32 1.1433 (20060307) Information

This message was checked by NOD32 antivirus system.
http://www.eset.com


…and would then like to run our diagnostics on those drives without
having to stop one card and start the other.

As long “having to stop one card” does not mean updating the test driver
itself that is already loaded and controlling the other card, you are
good to go.

d

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Gary G. Little
Sent: Tuesday, March 07, 2006 4:09 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] KMDF driver supporting multiple versions of a PCI
card

The 3124 and 3132 are both SiI SATA controllers. Both cards can be
controlled by the same driver with allowances for individual
differences;
e.g. the 3124 has 4 channels but the 3132 has 2. We test and handle that
difference when we allocate memory for the channels. We may have drives
to
test connected to both cards and would then like to run our diagnostics
on
those drives without having to stop one card and start the other.

I had the epiphany to change the INF just before I left work. The quick
test
I did showed that I was on the right path and you have now strengthened
that. Tomorrow I’ll verify that is what we want, or come back here with
another woe-is-me tale. :slight_smile:

The personal opinion of
Gary G. Little

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Doron Holan
Sent: Tuesday, March 07, 2006 5:05 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] KMDF driver supporting multiple versions of a PCI
card

I am still unclear what you are trying todo. Is 3124 and 3132 different
devices? If you are trying to install the same driver on 2 instances,
you can easily do that with the INF you have below. DriverEntry will be
called once, EvtDriverDeviceAdd will be called per device (so 2 if done
correctly).

d

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@seagate.com
Sent: Tuesday, March 07, 2006 2:58 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] KMDF driver supporting multiple versions of a PCI
card

No, this is not a bus driver. I used “hook” for want of a better term,
and
obviously that was inadequate. I want PDO’s created for each card in the
system, whether 3124 or 3132, since the same code can be used to run
both.

This happens when you plug in two identical cards, I simply want to
force
it to do the same for cards that are close siblings with the same
parentage.

What I just did, and which seems to work, was to do this in the INF
file:

; For XP and later
[STX.NT$ARCH$]
; DisplayName Section DeviceId
; ----------- ------- --------
%SiI680.DRVDESC%=SiI680_Inst, PCI\VEN_1095&DEV_0680
%SiI3124.DRVDESC%=SiI3124_Inst, PCI\VEN_1095&DEV_3124,
PCI\VEN_1095&DEV_3132
;%SiI3132.DRVDESC%=SiI3132_Inst, PCI\VEN_1095&DEV_3132

Note that I commented out the last assignment line when I added two
hardware ID’s to the %SiI3124.DRVDESC% line. I’ll test this tomorrow,
but
I may have simply loaded two instances with two calls to DriverEntry;
which, though livable, I do not want.

Something keeps nagging at me that doing this is a lot simpler than I am
trying to make it. I just forget what it is.

Gary G. Little

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Doron Holan
Sent: Tuesday, March 07, 2006 4:39 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] KMDF driver supporting multiple versions of a PCI
card

Are you trying to write a bus driver?

I am not sure what you mean by “hook” the other device.

d

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@seagate.com
Sent: Tuesday, March 07, 2006 2:23 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] KMDF driver supporting multiple versions of a PCI card

Given the following PCI HBAs:

SiI 3124 (4 channel)
SiI 3132 (2 channel)

I need to support both of these cards with run driver. What happens now
is
that one instance in device manager will be flagged disabled and the
other
one enabled. Enabling the disabled one will request that the system
power
down after which the reverse is true. I’m suspecting I need to add a
hardware ID to the device object in EvtDevice add to tell the system to
“hook” the other device and call AddDevice for it. The reason I have not
done that is that I cannot find the format for the Device/Hardware IDs.
When I click on the link in the KMDF documents, I get a “page cannot be
displayed” error. The RawPdo driver uses WdfPdoInitAddHardwareID, and
that
ID looks like “\Keyboard Filter”. I’d certainly like to know what
it should be; e.g. “\VEN_1095&DEV_3124”?

Or is there magic that needs to, or can be, done in the INF. A single
INF
installs both cards.

Gary G. Little


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


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


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


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

NOD32 1.1433 (20060307) Information

This message was checked by NOD32 antivirus system.
http://www.eset.com


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

Thanks for the help Doron. Putting both vendor and device IDs on the same
line did the trick and allowed one drive instance with two calls to
AddDevice, or XxxEvtDeviceAdd. So, no woe-is-me tale is needed. :slight_smile:

Gary G. Little

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Doron Holan
Sent: Tuesday, March 07, 2006 6:38 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] KMDF driver supporting multiple versions of a PCI
card


…and would then like to run our diagnostics on those drives without
having to stop one card and start the other.

As long “having to stop one card” does not mean updating the test driver
itself that is already loaded and controlling the other card, you are
good to go.

d

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Gary G. Little
Sent: Tuesday, March 07, 2006 4:09 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] KMDF driver supporting multiple versions of a PCI
card

The 3124 and 3132 are both SiI SATA controllers. Both cards can be
controlled by the same driver with allowances for individual
differences;
e.g. the 3124 has 4 channels but the 3132 has 2. We test and handle that
difference when we allocate memory for the channels. We may have drives
to
test connected to both cards and would then like to run our diagnostics
on
those drives without having to stop one card and start the other.

I had the epiphany to change the INF just before I left work. The quick
test
I did showed that I was on the right path and you have now strengthened
that. Tomorrow I’ll verify that is what we want, or come back here with
another woe-is-me tale. :slight_smile:

The personal opinion of
Gary G. Little

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Doron Holan
Sent: Tuesday, March 07, 2006 5:05 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] KMDF driver supporting multiple versions of a PCI
card

I am still unclear what you are trying todo. Is 3124 and 3132 different
devices? If you are trying to install the same driver on 2 instances,
you can easily do that with the INF you have below. DriverEntry will be
called once, EvtDriverDeviceAdd will be called per device (so 2 if done
correctly).

d

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@seagate.com
Sent: Tuesday, March 07, 2006 2:58 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] KMDF driver supporting multiple versions of a PCI
card

No, this is not a bus driver. I used “hook” for want of a better term,
and
obviously that was inadequate. I want PDO’s created for each card in the
system, whether 3124 or 3132, since the same code can be used to run
both.

This happens when you plug in two identical cards, I simply want to
force
it to do the same for cards that are close siblings with the same
parentage.

What I just did, and which seems to work, was to do this in the INF
file:

; For XP and later
[STX.NT$ARCH$]
; DisplayName Section DeviceId
; ----------- ------- --------
%SiI680.DRVDESC%=SiI680_Inst, PCI\VEN_1095&DEV_0680
%SiI3124.DRVDESC%=SiI3124_Inst, PCI\VEN_1095&DEV_3124,
PCI\VEN_1095&DEV_3132
;%SiI3132.DRVDESC%=SiI3132_Inst, PCI\VEN_1095&DEV_3132

Note that I commented out the last assignment line when I added two
hardware ID’s to the %SiI3124.DRVDESC% line. I’ll test this tomorrow,
but
I may have simply loaded two instances with two calls to DriverEntry;
which, though livable, I do not want.

Something keeps nagging at me that doing this is a lot simpler than I am
trying to make it. I just forget what it is.

Gary G. Little

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Doron Holan
Sent: Tuesday, March 07, 2006 4:39 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] KMDF driver supporting multiple versions of a PCI
card

Are you trying to write a bus driver?

I am not sure what you mean by “hook” the other device.

d

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@seagate.com
Sent: Tuesday, March 07, 2006 2:23 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] KMDF driver supporting multiple versions of a PCI card

Given the following PCI HBAs:

SiI 3124 (4 channel)
SiI 3132 (2 channel)

I need to support both of these cards with run driver. What happens now
is
that one instance in device manager will be flagged disabled and the
other
one enabled. Enabling the disabled one will request that the system
power
down after which the reverse is true. I’m suspecting I need to add a
hardware ID to the device object in EvtDevice add to tell the system to
“hook” the other device and call AddDevice for it. The reason I have not
done that is that I cannot find the format for the Device/Hardware IDs.
When I click on the link in the KMDF documents, I get a “page cannot be
displayed” error. The RawPdo driver uses WdfPdoInitAddHardwareID, and
that
ID looks like “\Keyboard Filter”. I’d certainly like to know what
it should be; e.g. “\VEN_1095&DEV_3124”?

Or is there magic that needs to, or can be, done in the INF. A single
INF
installs both cards.

Gary G. Little


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


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


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


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

NOD32 1.1433 (20060307) Information

This message was checked by NOD32 antivirus system.
http://www.eset.com


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


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