查询/更改NIC以编程方式接收描述符? [英] query / change NIC receive descriptors programmatically?
问题描述
我有一个应用程序可以接收非常大的网络流量.为了正常工作,NIC必须将其"RX描述符"缓冲区的大小增加到Windows/NIC(相对保守的默认值)之上.我可以通过设备管理器(网络适配器->< nic_name>->高级)为每个系统手动更改它,但是随着我们构建越来越多的这些系统,这确实容易出现人为错误.
有什么方法可以从我们的C ++应用程序中(最低)查询当前设置,或者从我们的应用程序中(最佳)自动设置吗?
在此先感谢您.
I''ve got an application that receives very heavy network traffic. To work properly, the NIC must have its "RX Descriptors" buffer size increased above the Windows/NIC rather conservative default. I can change it manually for each system through the Device Manager (Network Adapters -> <nic_name> -> Advanced), but that is really prone to human error as we build more and more of these systems.
Is there any way to (minimally) query the current setting from within our C++ application, or (optimally) set it automatically from within our application?
Thanks in advance.
推荐答案
查看INetCFG接口
http://msdn.microsoft.com/en-us/library/ff547694.aspx [ ^ ]
如果那不能解决问题,我认为您唯一的选择是尝试从内核模式更改此设置. (通过驱动程序)
同样,我也不认为这是一个好方法,因为您所做的更改会影响整个系统
不仅是您的应用程序.
Look into the INetCFG interface
http://msdn.microsoft.com/en-us/library/ff547694.aspx[^]
if that doesn''t do the trick i think your only other option is to try and change this setting from kernel mode. (through a driver)
Also i do not believe this is a good approach since the changes you are making will affect the entire system
not just your application.
太好了-谢谢库尔特!我将看一下此链接,看看是否可以解决问题.
我理解并感谢您的关注,但是这些设备实际上是简化了OEM嵌入式"控制器的,这些控制器在集成到较大系统中的专用定制硬件上运行.他们没有头,除非运行我们的软件,否则将永远看不到曙光".所以我们应该很安全.
Great - thank you Kurt! I''ll take a look at this link and see if that will do the trick.
I understand and appreciate your concern, but these boxes are actually stripped down OEM "embedded" controllers running on dedicated custom hardware integrated into a larger system. They are headless, and will never "see the light of day" except to run our software. So we should be safe.
这篇关于查询/更改NIC以编程方式接收描述符?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!