Port vs Miniport driver

I just verify if my understanding of the difference between port vs minport drivers is correct.

Does a miniport driver directly interface with the hardware and generally created by independent hardware vendors.

Is a port driver generally created my microsoft driver devlopers and at a level between the class driver and miniport driver.

Well there are virtual storport mini-ports that do not interface with
hardware, for example iSCSI. Also, there are 3rd parties who have
internally created their own model of port/miniport (though typically not
for storage).

Don Burn
Windows Driver Consulting
Website: http://www.windrvr.com

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@edu.salford.ac.uk
Sent: Friday, January 23, 2015 6:49 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] Port vs Miniport driver

I just verify if my understanding of the difference between port vs minport
drivers is correct.

Does a miniport driver directly interface with the hardware and generally
created by independent hardware vendors.

Is a port driver generally created my microsoft driver devlopers and at a
level between the class driver and miniport driver.


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

Port/miniport are a pair. Generally the pair of them operate some sort of IO controller (like a SCSI controller or a NIC). The controller might, as Don points out, be a virtualized one. The miniport is a driver that’s typically dynamically linked against exports from the port, which is an export driver.

Usually a miniport’s interactions with the kernel or HAL or other export libraries outside of the port are minimal. The interface from port to miniport is very controller-type specific (send SCSI request, transmit packet, start I2C operation, set GPIO pin, etc…). And the miniport usually just translates those calls into commands to the hardware.

By “Just” I mean that’s it’s role, not that it’s trivial to do. Video miniports, for example, were often quite large even before you considered the display DLLs that went with them.

-p

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Don Burn
Sent: Friday, January 23, 2015 4:36 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] Port vs Miniport driver

Well there are virtual storport mini-ports that do not interface with hardware, for example iSCSI. Also, there are 3rd parties who have internally created their own model of port/miniport (though typically not for storage).

Don Burn
Windows Driver Consulting
Website: http://www.windrvr.com

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@edu.salford.ac.uk
Sent: Friday, January 23, 2015 6:49 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] Port vs Miniport driver

I just verify if my understanding of the difference between port vs minport
drivers is correct.

Does a miniport driver directly interface with the hardware and generally
created by independent hardware vendors.

Is a port driver generally created my microsoft driver devlopers and at a
level between the class driver and miniport driver.


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


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 read the document from MSDN:
‘Minidrivers, Miniport drivers, and driver pairs’.

I realize the relationship between port and miniport driver is “driver pairs”,
they are either serve as the FDO in a device stack,
btw, the bottom of article told that (HID minidriver, HID class driver) are driver pairs too!,
is this true?

My concept of HID minidriver is the underlying driver that reports the HID usage for virtual HID device to the HID class driver, so far, I thought the HID class is FDO, and the HID minidriver is Lower Filter-DO.

A kmsf based hid mini driver is as you describe, but that is because this is a true hid miniport as the fdo that acts as a pass through and sends all requests to the lower filter kmdf driver. This was done so that you could write a full kmdf driver with all of the necessary Io queue primitives, if the kmdf driver were a hid miniport, you only get Io targets.

d

Bent from my phone


From: xxxxx@hotmail.commailto:xxxxx
Sent: ?1/?23/?2015 6:58 PM
To: Windows System Software Devs Interest Listmailto:xxxxx
Subject: RE:[ntdev] Port vs Miniport driver

I read the document from MSDN:
‘Minidrivers, Miniport drivers, and driver pairs’.

I realize the relationship between port and miniport driver is “driver pairs”,
they are either serve as the FDO in a device stack,
btw, the bottom of article told that (HID minidriver, HID class driver) are driver pairs too!,
is this true?

My concept of HID minidriver is the underlying driver that reports the HID usage for virtual HID device to the HID class driver, so far, I thought the HID class is FDO, and the HID minidriver is Lower Filter-DO.


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</mailto:xxxxx></mailto:xxxxx>