Plug and Play in 2000

I am writing a driver which emulates a hardware device. Until recently I
left it as a so called “Legacy” device. I am now trying to put Plug and
Play support into it ( I am a miniport driver so this is relatively easy for
me ). I followed the Win2k DDK docs for this ( routines, registry entries,
etc ). When I put this driver on a checked build system and watch the
output with Windbg I see my DriverEntry routine get called and all functions
therein complete successfully, but when DriverEntry exits I see a message
saying that my driver was unloaded. I assume that this is the PnP manager
which is doing this, but there is not a clue left as to what it is so angry
about. Does anyone know how to get more information out of the PnP manager
( registry settings for log files, etc ).

Sean O’Connor
Spectra Logic
Boulder, Colorado


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

Some time ago, Sean O’Connor wrote…

I am writing a driver which emulates a hardware device. Until recently I
left it as a so called “Legacy” device. I am now trying to put Plug and
Play support into it ( I am a miniport driver so this is relatively easy for
me ). I followed the Win2k DDK docs for this ( routines, registry entries,
etc ). When I put this driver on a checked build system and watch the
output with Windbg I see my DriverEntry routine get called and all functions
therein complete successfully, but when DriverEntry exits I see a message
saying that my driver was unloaded. I assume that this is the PnP manager
which is doing this, but there is not a clue left as to what it is so angry
about. Does anyone know how to get more information out of the PnP manager
( registry settings for log files, etc ).

Do you fill in AddDevice pointer in driver extension? You should
set it to the address of your AddDevice function, otherwise, PnP manager
has no clue as to what to do next with your driver, and unloads it.

-kkm


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

I am a SCSI miniport driver and do not have an AddDevice routine. The Port
driver does a good deal of the Plug and Play support for me. I am required
to supply an routine called HwScsiAdapterControl which has a several
purposes ( query, stop adapter, start adapter, etc ). Besides this the only
other requirement ( according to the DDK ) is a registry entry stating that
I am a Plug and Play device. But the OS never even calls
HwScsiAdapterControl. I fill out my entry points in a structure called
HW_INITIALIZATION_DATA included the entry point for HwScsiAdapterControl
then call the routine ScsiPortInitialize with that information and exit from
DriverEntry. It is right after this that the OS unloads me without even
calling any more of my routines ( I verified this through Windbg and KdPrint
statements ).
Thank you for your replies.

-----Original Message-----
From: Kirill ‘Big K’ Katsnelson [mailto:xxxxx@dtmx.com]
Sent: Wednesday, December 27, 2000 4:47 PM
To: NT Developers Interest List
Subject: [ntdev] Re: Plug and Play in 2000

Some time ago, Sean O’Connor wrote…

I am writing a driver which emulates a hardware device. Until recently I
left it as a so called “Legacy” device. I am now trying to put Plug and
Play support into it ( I am a miniport driver so this is relatively easy
for
me ). I followed the Win2k DDK docs for this ( routines, registry entries,
etc ). When I put this driver on a checked build system and watch the
output with Windbg I see my DriverEntry routine get called and all
functions
therein complete successfully, but when DriverEntry exits I see a message
saying that my driver was unloaded. I assume that this is the PnP manager
which is doing this, but there is not a clue left as to what it is so angry
about. Does anyone know how to get more information out of the PnP manager
( registry settings for log files, etc ).

Do you fill in AddDevice pointer in driver extension? You should
set it to the address of your AddDevice function, otherwise, PnP manager
has no clue as to what to do next with your driver, and unloads it.

-kkm


You are currently subscribed to ntdev as: xxxxx@spectralogic.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

> output with Windbg I see my DriverEntry routine get called and all
functions

therein complete successfully, but when DriverEntry exits I see a message
saying that my driver was unloaded. I assume that this is the PnP manager

Do you have an AddDevice routine?

Max


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

> then call the routine ScsiPortInitialize with that information and exit
from

DriverEntry. It is right after this that the OS unloads me without even
calling any more of my routines ( I verified this through Windbg and
KdPrint
statements ).

BTW - a good question:

  • how the OS determines whether the driver is PnP one or a non-PnP one?
    Is setting DriverExtension->AddDevice to non-NULL in DriverEntry the
    criteria? Or some registry stuff?

Max


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

According to the DDK docs it is the registry entry that decides it.

“The PnPInterface registry entry should be made under the Services key for
the miniport. For example, the following registry entry enables Plug and
Play for a fictitious miniport driver called Twiddle.”

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services
\Twiddle
\Parameters
\PnpInterface
5 : REG_DWORD : 1 (5 = PCI)
1 : REG_DWORD : 1 (1 = Isa)
2 : REG_DWORD : 1 (2 = Eisa)
8 : REG_DWORD : 1 (8 = Pcmcia)

I have done this as well as register the entry point HwScsiAdapterControl
which is the AddDevice equivalent for a Scsi Miniport driver. I modeled
this after the docs and the sample drivers in the DDK. I cannot find
anything substantially different between my driver and the DDK samples,
other than the fact that my driver does not interact with any hardware. I
have experienced cases where W2K gets touchy because of this fact but I
found a way around it. I can only guess as to what is happening but it
seems that once I exit DriverEntry the PnP manager goes through some checks
to see if it is happy with what it has been told. Apparently it is not
because it drops me on the floor with no explanation. Possibly it has
dectected that I have installed this driver as a “Virtual driver” not
associated with any hardware bus (which was only possible because of a 4
week long support call).

Rant to follow: Is anyone else tired of Microsoft trying to make their OS
as mysterious as possible? Back in the 16 bit days you could do almost
anything. Now you are forced to interact with what is basically a Black
box. Poke it and observe the response, repeat ad nauseam. Win2k is huge
but the documentation has barely grown from NT4. What do they hope to gain
by creating such a knowledge vacuum?

Sean O’Connor

-----Original Message-----
From: Maxim S. Shatskih [mailto:xxxxx@storagecraft.com]
Sent: Thursday, December 28, 2000 1:25 PM
To: NT Developers Interest List
Subject: [ntdev] Re: Plug and Play in 2000

then call the routine ScsiPortInitialize with that information and exit
from
DriverEntry. It is right after this that the OS unloads me without even
calling any more of my routines ( I verified this through Windbg and
KdPrint
statements ).

BTW - a good question:

  • how the OS determines whether the driver is PnP one or a non-PnP one?
    Is setting DriverExtension->AddDevice to non-NULL in DriverEntry the
    criteria? Or some registry stuff?

Max


You are currently subscribed to ntdev as: xxxxx@spectralogic.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

Maybe I missed it, but have you ever stated what status is returned by
DriverEntry, or at least what status is returned by ScsiPortInitialize?

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Sean O’Connor
Sent: Thursday, December 28, 2000 1:10 PM
To: NT Developers Interest List
Subject: [ntdev] Re: Plug and Play in 2000

According to the DDK docs it is the registry entry that decides it.

“The PnPInterface registry entry should be made under the Services key for
the miniport. For example, the following registry entry enables Plug and
Play for a fictitious miniport driver called Twiddle.”

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services
\Twiddle
\Parameters
\PnpInterface
5 : REG_DWORD : 1 (5 = PCI)
1 : REG_DWORD : 1 (1 = Isa)
2 : REG_DWORD : 1 (2 = Eisa)
8 : REG_DWORD : 1 (8 = Pcmcia)

I have done this as well as register the entry point HwScsiAdapterControl
which is the AddDevice equivalent for a Scsi Miniport driver. I modeled
this after the docs and the sample drivers in the DDK. I cannot find
anything substantially different between my driver and the DDK samples,
other than the fact that my driver does not interact with any hardware. I
have experienced cases where W2K gets touchy because of this fact but I
found a way around it. I can only guess as to what is happening but it
seems that once I exit DriverEntry the PnP manager goes through some checks
to see if it is happy with what it has been told. Apparently it is not
because it drops me on the floor with no explanation. Possibly it has
dectected that I have installed this driver as a “Virtual driver” not
associated with any hardware bus (which was only possible because of a 4
week long support call).

Rant to follow: Is anyone else tired of Microsoft trying to make their OS
as mysterious as possible? Back in the 16 bit days you could do almost
anything. Now you are forced to interact with what is basically a Black
box. Poke it and observe the response, repeat ad nauseam. Win2k is huge
but the documentation has barely grown from NT4. What do they hope to gain
by creating such a knowledge vacuum?



Sean O’Connor

-----Original Message-----
From: Maxim S. Shatskih [mailto:xxxxx@storagecraft.com]
Sent: Thursday, December 28, 2000 1:25 PM
To: NT Developers Interest List
Subject: [ntdev] Re: Plug and Play in 2000

> then call the routine ScsiPortInitialize with that information and exit
from
> DriverEntry. It is right after this that the OS unloads me without even
> calling any more of my routines ( I verified this through Windbg and
KdPrint
> statements ).

BTW - a good question:
- how the OS determines whether the driver is PnP one or a non-PnP one?
Is setting DriverExtension->AddDevice to non-NULL in DriverEntry the
criteria? Or some registry stuff?

Max


You are currently subscribed to ntdev as: xxxxx@spectralogic.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: xxxxx@inland.net
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

Here is a cut of my Windbg log file. Nasvault is the name of my driver and
the first 3 messages are mine coming from my DriverEntry KdPrint statements
the last message comes from the system. The return value of 0 is fine.

NASVault Driver Entry . . .
NASVault DriverEntry calling ScsiPortInitialize . . .
NASVAULT ScsiPortInitialize Returned 0
****** Unloaded driver (nasvault)

I am a legacy device the discovery of the hardware occurs immediately,
before ScsiPortInitialize returns. When I enable Plug and Play
ScsiPortInitialize returns without discovering the hardware. The docs say
that this discovery is done at a later time.

-----Original Message-----
From: Gary G. Little [mailto:xxxxx@inland.net]
Sent: Thursday, December 28, 2000 2:35 PM
To: NT Developers Interest List
Subject: [ntdev] Re: Plug and Play in 2000

Maybe I missed it, but have you ever stated what status is returned by
DriverEntry, or at least what status is returned by ScsiPortInitialize?

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Sean O’Connor
Sent: Thursday, December 28, 2000 1:10 PM
To: NT Developers Interest List
Subject: [ntdev] Re: Plug and Play in 2000

According to the DDK docs it is the registry entry that decides it.

“The PnPInterface registry entry should be made under the Services key for
the miniport. For example, the following registry entry enables Plug and
Play for a fictitious miniport driver called Twiddle.”

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services
\Twiddle
\Parameters
\PnpInterface
5 : REG_DWORD : 1 (5 = PCI)
1 : REG_DWORD : 1 (1 = Isa)
2 : REG_DWORD : 1 (2 = Eisa)
8 : REG_DWORD : 1 (8 = Pcmcia)

I have done this as well as register the entry point HwScsiAdapterControl
which is the AddDevice equivalent for a Scsi Miniport driver. I modeled
this after the docs and the sample drivers in the DDK. I cannot find
anything substantially different between my driver and the DDK samples,
other than the fact that my driver does not interact with any hardware. I
have experienced cases where W2K gets touchy because of this fact but I
found a way around it. I can only guess as to what is happening but it
seems that once I exit DriverEntry the PnP manager goes through some checks
to see if it is happy with what it has been told. Apparently it is not
because it drops me on the floor with no explanation. Possibly it has
dectected that I have installed this driver as a “Virtual driver” not
associated with any hardware bus (which was only possible because of a 4
week long support call).

Rant to follow: Is anyone else tired of Microsoft trying to make their OS
as mysterious as possible? Back in the 16 bit days you could do almost
anything. Now you are forced to interact with what is basically a Black
box. Poke it and observe the response, repeat ad nauseam. Win2k is huge
but the documentation has barely grown from NT4. What do they hope to gain
by creating such a knowledge vacuum?



Sean O’Connor

-----Original Message-----
From: Maxim S. Shatskih [mailto:xxxxx@storagecraft.com]
Sent: Thursday, December 28, 2000 1:25 PM
To: NT Developers Interest List
Subject: [ntdev] Re: Plug and Play in 2000

> then call the routine ScsiPortInitialize with that information and exit
from
> DriverEntry. It is right after this that the OS unloads me without even
> calling any more of my routines ( I verified this through Windbg and
KdPrint
> statements ).

BTW - a good question:
- how the OS determines whether the driver is PnP one or a non-PnP one?
Is setting DriverExtension->AddDevice to non-NULL in DriverEntry the
criteria? Or some registry stuff?

Max


You are currently subscribed to ntdev as: xxxxx@spectralogic.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: xxxxx@inland.net
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: xxxxx@spectralogic.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

Ok, have you set breakpoints in any of the entry points that you defined and
passed to ScsiPortInitialize? If you haven’t, I would set breakpoints in
HwFind… and HwInitialize… Did you define Vendor and Device Id’s? How
did you set AdapterInterfaceType?

Gary

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Sean O’Connor
Sent: Thursday, December 28, 2000 2:29 PM
To: NT Developers Interest List
Subject: [ntdev] Re: Plug and Play in 2000

Here is a cut of my Windbg log file. Nasvault is the name of my driver and
the first 3 messages are mine coming from my DriverEntry KdPrint statements
the last message comes from the system. The return value of 0 is fine.

NASVault Driver Entry . . .
NASVault DriverEntry calling ScsiPortInitialize . . .
NASVAULT ScsiPortInitialize Returned 0
****** Unloaded driver (nasvault)

I am a legacy device the discovery of the hardware occurs immediately,
before ScsiPortInitialize returns. When I enable Plug and Play
ScsiPortInitialize returns without discovering the hardware. The docs say
that this discovery is done at a later time.

-----Original Message-----
From: Gary G. Little [mailto:xxxxx@inland.net]
Sent: Thursday, December 28, 2000 2:35 PM
To: NT Developers Interest List
Subject: [ntdev] Re: Plug and Play in 2000

Maybe I missed it, but have you ever stated what status is returned by
DriverEntry, or at least what status is returned by ScsiPortInitialize?

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Sean O’Connor
Sent: Thursday, December 28, 2000 1:10 PM
To: NT Developers Interest List
Subject: [ntdev] Re: Plug and Play in 2000

According to the DDK docs it is the registry entry that decides it.

“The PnPInterface registry entry should be made under the Services key for
the miniport. For example, the following registry entry enables Plug and
Play for a fictitious miniport driver called Twiddle.”

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services
\Twiddle
\Parameters
\PnpInterface
5 : REG_DWORD : 1 (5 = PCI)
1 : REG_DWORD : 1 (1 = Isa)
2 : REG_DWORD : 1 (2 = Eisa)
8 : REG_DWORD : 1 (8 = Pcmcia)

I have done this as well as register the entry point HwScsiAdapterControl
which is the AddDevice equivalent for a Scsi Miniport driver. I modeled
this after the docs and the sample drivers in the DDK. I cannot find
anything substantially different between my driver and the DDK samples,
other than the fact that my driver does not interact with any hardware. I
have experienced cases where W2K gets touchy because of this fact but I
found a way around it. I can only guess as to what is happening but it
seems that once I exit DriverEntry the PnP manager goes through some checks
to see if it is happy with what it has been told. Apparently it is not
because it drops me on the floor with no explanation. Possibly it has
dectected that I have installed this driver as a “Virtual driver” not
associated with any hardware bus (which was only possible because of a 4
week long support call).

Rant to follow: Is anyone else tired of Microsoft trying to make their OS
as mysterious as possible? Back in the 16 bit days you could do almost
anything. Now you are forced to interact with what is basically a Black
box. Poke it and observe the response, repeat ad nauseam. Win2k is huge
but the documentation has barely grown from NT4. What do they hope to gain
by creating such a knowledge vacuum?



Sean O’Connor

-----Original Message-----
From: Maxim S. Shatskih [mailto:xxxxx@storagecraft.com]
Sent: Thursday, December 28, 2000 1:25 PM
To: NT Developers Interest List
Subject: [ntdev] Re: Plug and Play in 2000

> then call the routine ScsiPortInitialize with that information and exit
from
> DriverEntry. It is right after this that the OS unloads me without even
> calling any more of my routines ( I verified this through Windbg and
KdPrint
> statements ).

BTW - a good question:
- how the OS determines whether the driver is PnP one or a non-PnP one?
Is setting DriverExtension->AddDevice to non-NULL in DriverEntry the
criteria? Or some registry stuff?

Max


You are currently subscribed to ntdev as: xxxxx@spectralogic.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: xxxxx@inland.net
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: xxxxx@spectralogic.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: xxxxx@inland.net
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

Yes I set breakpoints in many places and they never get called (in softice
and I watch the KdPrints from Windbg ). But I think that you are onto
something about the Inf file. I am not very skilled at interpeting them but
I think I see some places there where I could be telling the system that I
am a Legacy only device. That would explain why it gets upset when I try to
load as a PnP device.
Thank you for all your help.

-----Original Message-----
From: Gary G. Little [mailto:xxxxx@inland.net]
Sent: Friday, December 29, 2000 4:45 AM
To: NT Developers Interest List
Subject: [ntdev] Re: Plug and Play in 2000

Ok, have you set breakpoints in any of the entry points that you defined and
passed to ScsiPortInitialize? If you haven’t, I would set breakpoints in
HwFind… and HwInitialize… Did you define Vendor and Device Id’s? How
did you set AdapterInterfaceType?

Gary

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Sean O’Connor
Sent: Thursday, December 28, 2000 2:29 PM
To: NT Developers Interest List
Subject: [ntdev] Re: Plug and Play in 2000

Here is a cut of my Windbg log file. Nasvault is the name of my driver and
the first 3 messages are mine coming from my DriverEntry KdPrint statements
the last message comes from the system. The return value of 0 is fine.

NASVault Driver Entry . . .
NASVault DriverEntry calling ScsiPortInitialize . . .
NASVAULT ScsiPortInitialize Returned 0
****** Unloaded driver (nasvault)

I am a legacy device the discovery of the hardware occurs immediately,
before ScsiPortInitialize returns. When I enable Plug and Play
ScsiPortInitialize returns without discovering the hardware. The docs say
that this discovery is done at a later time.

-----Original Message-----
From: Gary G. Little [mailto:xxxxx@inland.net]
Sent: Thursday, December 28, 2000 2:35 PM
To: NT Developers Interest List
Subject: [ntdev] Re: Plug and Play in 2000

Maybe I missed it, but have you ever stated what status is returned by
DriverEntry, or at least what status is returned by ScsiPortInitialize?

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Sean O’Connor
Sent: Thursday, December 28, 2000 1:10 PM
To: NT Developers Interest List
Subject: [ntdev] Re: Plug and Play in 2000

According to the DDK docs it is the registry entry that decides it.

“The PnPInterface registry entry should be made under the Services key for
the miniport. For example, the following registry entry enables Plug and
Play for a fictitious miniport driver called Twiddle.”

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services
\Twiddle
\Parameters
\PnpInterface
5 : REG_DWORD : 1 (5 = PCI)
1 : REG_DWORD : 1 (1 = Isa)
2 : REG_DWORD : 1 (2 = Eisa)
8 : REG_DWORD : 1 (8 = Pcmcia)

I have done this as well as register the entry point HwScsiAdapterControl
which is the AddDevice equivalent for a Scsi Miniport driver. I modeled
this after the docs and the sample drivers in the DDK. I cannot find
anything substantially different between my driver and the DDK samples,
other than the fact that my driver does not interact with any hardware. I
have experienced cases where W2K gets touchy because of this fact but I
found a way around it. I can only guess as to what is happening but it
seems that once I exit DriverEntry the PnP manager goes through some checks
to see if it is happy with what it has been told. Apparently it is not
because it drops me on the floor with no explanation. Possibly it has
dectected that I have installed this driver as a “Virtual driver” not
associated with any hardware bus (which was only possible because of a 4
week long support call).

Rant to follow: Is anyone else tired of Microsoft trying to make their OS
as mysterious as possible? Back in the 16 bit days you could do almost
anything. Now you are forced to interact with what is basically a Black
box. Poke it and observe the response, repeat ad nauseam. Win2k is huge
but the documentation has barely grown from NT4. What do they hope to gain
by creating such a knowledge vacuum?



Sean O’Connor

-----Original Message-----
From: Maxim S. Shatskih [mailto:xxxxx@storagecraft.com]
Sent: Thursday, December 28, 2000 1:25 PM
To: NT Developers Interest List
Subject: [ntdev] Re: Plug and Play in 2000

> then call the routine ScsiPortInitialize with that information and exit
from
> DriverEntry. It is right after this that the OS unloads me without even
> calling any more of my routines ( I verified this through Windbg and
KdPrint
> statements ).

BTW - a good question:
- how the OS determines whether the driver is PnP one or a non-PnP one?
Is setting DriverExtension->AddDevice to non-NULL in DriverEntry the
criteria? Or some registry stuff?

Max


You are currently subscribed to ntdev as: xxxxx@spectralogic.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: xxxxx@inland.net
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: xxxxx@spectralogic.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: xxxxx@inland.net
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: xxxxx@spectralogic.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com