finding a device is PnP or not

Hi,

How can I find a device is PnP or non-PnP? Can I find this in Device
Manager?

On Aug 15, 2014, at 10:57 PM, elahe shekuhi > wrote:

How can I find a device is PnP or non-PnP? Can I find this in Device Manager?

Why do you care? What would you do differently? Can you be more specific about what you want to do?

In general, all devices in Windows are PnP. Some drivers are non-PnP;t those drivers are managed as services, not in Device Manager.

Tim Roberts, xxxxx@probo.commailto:xxxxx
Providenza & Boekelheide, Inc.</mailto:xxxxx>

Thanks Tim, for attention :).

I can’t understand how non-PnP devices can be discovered? Or more exactly
who finds them?

Is it necessary for a device driver to support PnP?

I can’t understand the difference. What’s the major benefit of PnP devices
over non-PnP peers or vice versa?

On Sat, Aug 16, 2014 at 9:48 AM, Tim Roberts wrote:

> On Aug 15, 2014, at 10:57 PM, elahe shekuhi wrote:
>
>
> How can I find a device is PnP or non-PnP? Can I find this in Device
> Manager?
>
>
> Why do you care? What would you do differently? Can you be more specific
> about what you want to do?
>
> In general, all devices in Windows are PnP. Some drivers are non-PnP;t
> those drivers are managed as services, not in Device Manager.
> –
> Tim Roberts, xxxxx@probo.com
> Providenza & Boekelheide, Inc.
>
>
> —
> NTDEV is sponsored by OSR
>
> Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev
>
> OSR is HIRING!! See http://www.osr.com/careers
>
> 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
>

>I can’t understand how non-PnP devices can be discovered? Or more exactly who finds them?

They are usually discovered by predefined hardcoded names.

Is it necessary for a device driver to support PnP?

For hardware driver - yes, since Windows 2000 (it can run non-PnP HW drivers, but will enter degradation mode with power management globally disabled etc).

For non-hardware driver (virtual disk, etc) - not so.

I can’t understand the difference. What’s the major benefit of PnP devices

Auto-naming, auto-start/stop using the centralized API, auto hardware resource assignment, power management, hardware discovery etc…

On the other hand, non-PnP drivers are (in respect to the above list):

  • naming by hardcoded names like \Device\MyDev%d
  • start/stop either by driver load/unload or by proprietary IOCTL
  • HW resource assignment without the ability of rebalancing by HalAssignSlotResources
  • no power management besides the primitive MJ_SHUTDOWN IRP (just not implemented for them)
  • hardware discovery by probing all possible register/port combinations or by reading the config from the proprietary registry or text file

Also note that some buses like USB, 1394, and SCSI (the LUN drivers) are mandating PnP.


Maxim S. Shatskih
Microsoft MVP on File System And Storage
xxxxx@storagecraft.com
http://www.storagecraft.com

On Aug 15, 2014, at 11:54 PM, elahe shekuhi > wrote:
Thanks Tim, for attention :).

I can’t understand how non-PnP devices can be discovered? Or more exactly who finds them?

I?m not sure that you read what I wrote. In general, ALL devices are PnP. All devices have to be exposed by some bus driver. For devices that have no natural bus (like COM ports and serial ports), the ACPI BIOS will expose special identifiers that cause a PnP PDO to be created.

Is it necessary for a device driver to support PnP?

A driver for a real piece of hardware will support PnP. Drivers for virtual devices can be either; there are advantages to both.

I can’t understand the difference. What’s the major benefit of PnP devices over non-PnP peers or vice versa?

You shouldn?t be asking the questions about devices. If you have real hardware, then you will have a PnP driver. If you have a virtual driver or a software-assist driver, then you might make either choice.

Tim Roberts, xxxxx@probo.commailto:xxxxx
Providenza & Boekelheide, Inc.</mailto:xxxxx>

Thanks a lot Tim, for really helpful comments :slight_smile:

On Mon, Aug 18, 2014 at 8:44 AM, Tim Roberts wrote:

> On Aug 15, 2014, at 11:54 PM, elahe shekuhi wrote:
>
> Thanks Tim, for attention :).
>
> I can’t understand how non-PnP devices can be discovered? Or more exactly
> who finds them?
>
>
> I’m not sure that you read what I wrote. In general, ALL devices are PnP.
> All devices have to be exposed by some bus driver. For devices that have
> no natural bus (like COM ports and serial ports), the ACPI BIOS will expose
> special identifiers that cause a PnP PDO to be created.
>
>
>
> Is it necessary for a device driver to support PnP?
>
>
> A driver for a real piece of hardware will support PnP. Drivers for
> virtual devices can be either; there are advantages to both.
>
> I can’t understand the difference. What’s the major benefit of PnP devices
> over non-PnP peers or vice versa?
>
> You shouldn’t be asking the questions about devices. If you have real
> hardware, then you will have a PnP driver. If you have a virtual driver or
> a software-assist driver, then you might make either choice.
> –
> Tim Roberts, xxxxx@probo.com
> Providenza & Boekelheide, Inc.
>
>
> —
> NTDEV is sponsored by OSR
>
> Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev
>
> OSR is HIRING!! See http://www.osr.com/careers
>
> 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
>