Windows System Software -- Consulting, Training, Development -- Unique Expertise, Guaranteed Results

Before Posting...
Please check out the Community Guidelines in the Announcements and Administration Category.

More Info on Driver Writing and Debugging

The free OSR Learning Library has more than 50 articles on a wide variety of topics about writing and debugging device drivers and Minifilters. From introductory level to advanced. All the articles have been recently reviewed and updated, and are written using the clear and definitive style you've come to expect from OSR over the years.

Check out The OSR Learning Library at:

Error C2065: Undeclared Identifier "NDIS_HASH_UDP_IPV4" for UDP RSS

ronakdoshironakdoshi Member Posts: 18


I am trying to add RSS support for miniport driver. For IP/TCP RSS, the code compiles fine. However, when I add support for udp RSS, the compiler throws following error:
I am using Windows 10.

Error C2065: 'NDIS_HASH_UDP_IPV4' : undeclared Identifier

Below declaration works/compiles fine:
SupportedRssHashTypes = NDIS_HASH_IPV4 |

Below declaration throws the error for UDP RSS fields:
SupportedRssHashTypes = NDIS_HASH_IPV4 |

Same goes for advertising UDP RSS capabilities to the stack. Below declarations also result in same error.

MSDN documentation states UDP RSS is supported.
It does not mention that any specific header files need to be included for UDP RSS support.

So, the question is do we need to add any specific header files for UDP RSS declarations? Any documentation pointing to it would be helpful. I thought NDIS_HASH_XX_XX RSS declarations would be in same header. If it works for TCP, should be the same for UDP. But maybe I am wrong.

Any help is appreciated.



  • Tim_RobertsTim_Roberts Member - All Emails Posts: 13,627

    The documentation is wrong. RSS is all about distributing connections, and UDP packets are not part of a connection. Those symbols do not exist.

    Tim Roberts, [email protected]
    Providenza & Boekelheide, Inc.

  • Andy_MoretonAndy_Moreton Member Posts: 11

    The docs are fine, and the symbols do exist. Either the driver is being built with an old WDK, or the project file does not define "NDIS680_MINIPORT=1".
    RSS uses the src/dest IP addresses, and the src/dest TCP/UDP ports to compute a hash, with the low bits of the hash used as the index for the indirection table. UDP works fine if the hardware supports it.

  • Tim_RobertsTim_Roberts Member - All Emails Posts: 13,627
    edited November 2019

    Comment withdrawn. The symbols are present.

    Tim Roberts, [email protected]
    Providenza & Boekelheide, Inc.

  • ronakdoshironakdoshi Member Posts: 18

    Thanks Andy for the response.

    The docs are fine, and the symbols do exist. Either the driver is being built with an old WDK, or the project file does not define "NDIS680_MINIPORT=1".

    Can you point me to where it mentions NDIS680 is required for UDP RSS? Maybe that's the issue. That's not defined yet as the docs I pointed did not mentioned anything related to UDP RSS is supported after certain NDIS6 version.


Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Upcoming OSR Seminars
OSR has suspended in-person seminars due to the Covid-19 outbreak. But, don't miss your training! Attend via the internet instead!
Writing WDF Drivers 7 Dec 2020 LIVE ONLINE
Internals & Software Drivers 25 Jan 2021 LIVE ONLINE
Developing Minifilters 8 March 2021 LIVE ONLINE