As Peter mentioned (thanks Peter), I know a fair amount about Infinband on Windows.
You say you need to write an Infinband driver, and you mention an NDIS miniport.
Is this for a NIC like network device? Are your target customers enterprises or scientific computing folks. I ask about your target customers because the APIs you might consider supporting may be different. If your customers are scientific HPC folks, they may want to attempt source compatibility with the Linux RDMA APIs. If you target customers are enterprises who want RDMA accelerated file sharing (SMBDirect) to go wicked fast, you need to support the NetworkDirect kernel provider interface, which is exposed as a feature of a NDIS NIC driver.
You also mentioned you are new to Windows driver development. I’m sorry to say, RDMA/Infiniband drivers are not beginner projects. Things are not well documented (unless the Win 10 WDK changes things), and usually these are very high performance drivers, running at link speeds of 40/56/100 Gps. I know a while back Mellanox was looking to hire a driver engineer that sounded like would be working out of the Microsoft campus. To make a competitive product, your company may need to do this too. This is not unlike WDDM video drivers, which are only done by a handful of companies that have close relationships with Microsoft.
There are no tutorials on this kinds of stuff, and the Infiniband spec document is a fun (not) 1000 page read. About the only sample code would be the Windows OFED stack, which will give you some clues, but it’s hard to say if it’s useful anymore or if it’s just some totally separate universe from mainstream RDMA support. You likely need to implement the NetworkDirect kernel provider interface, as an integrated feature of a high performance NDIS 6.x NIC miniport driver. Enterprise customers will generally not be using the OFED stack, they will expect RDMA support to be integrated into NetworkDirect.
This all assumes you are a hardware (real or virtual) vendor and need to supply RDMA service. If your problem is you need to consume RDMA services, in kernel mode, last I knew it was not officially supported, although a number of companies have done products that do this (I worked on two such projects in the past).
As far as I can tell, RDMA support is becoming a required feature on modern high performance NICs.
Feel free to send me private email if you want to chat about details you would rather not discuss publically. Nearly every Infiniband project I’ve seen was pretty proprietary.
Jan Bottorff
xxxxx@pmatrix.com
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Mujeeb Shaik
Sent: Tuesday, December 2, 2014 9:31 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] Reg - Windows Device Driver and Infiniband
Hi to all,
I am new to Windows Device Driver Development,
I need to develop infiniband driver this is my goal,
Thing is that how to approach to reach my goal,can i use the NDIS Miniport Driver to develop infiniband Driver or some other way.
please suggest me the way to reach my goal.
if anyone have any sample codes or tutorials please share it will be very helpful,
Thanks in advance.
Thanks & Regards,
Shaik.
— 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