`
yexin218
  • 浏览: 970707 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

大数据是否需要封装在多个MDL中发送

阅读更多

前段时间,我们已经解决如何发送自定义的网络数据。那么接下来要做的是,要是要发送的数据很大, 是否需要把数据拆分,然后封装在多个MDL中发送呢?由于NdisAllocateMDL函数只能分配一个MDL,所以倘若需要多个MDL的话,那么就要解决如何串联多个MDL的问题。现在所掌握的资料,如果通过预分配调用NdisALlocateNetBufferAndNetbufferList的方式构建NBL的话,那么串连两个MDL的可查资料为:

NDIS_MDL_LINKAGE(FirstMdl) = SecondMdl;

 需要其他的比如设置dataLength这些应该不要设置了吧。但如果是后来增加新的一个MDL,就需要设置哪些数据参数了。

 

话又说回来了,如果我统统把所有的数据都放在一个MDL中,会如何呢?据我所知,如果在发送网络数据的时候,过大的数据也自动会被切成多个小包发送。这个网络上的一问一答(http://www.eggheadcafe.com/software/aspnet/33553113/ndisallocatemdl.aspx):

问题:

写道
Does NdisAllocate Mdl return a single MDL or a chain of MDL's based on the
size of the data buffer being described and physical page size? I looked at
MSDN but it does not say anything about this.

I am guessing that if say I have a 15K buffer on a system with 4k page size
then I will need 4 MDLs to describe the buffer and these MDLs will be chained
and the chain is what is returned from the call to NdisAllocateMdl. Is this
statement correct?

Thanks.

 回答是:

写道
As long as the buffer is "virtually contiguous" (i.e. one virtual address
describes the entire 15K buffer) then you only need one MDL to describe it.
You don't need multiple MDLs just because the buffer may be "physically
fragmented”.


The fact that the memory might span 5 pages is reflected in the pfn array at
the bottom of the MDL (after the header).

 所以我想,不妨先试试看~当然分两个MDL发,肯定也是可以的。只不过我还没有想到如何串联它们俩。https://www.osronline.com/cf.cfm?PageURL=showThread.CFM?link=134437

 

二:还有一个问题,如何区分多个Filter实例。我们知道每个Filter instance都绑定在对应的网卡上,包含虚拟网卡。那么如何区分哪个filter实例是对应的某个网卡呢?因为倘若要指定某张网卡执行操作,那么必须知道其对应的那个filter实例。目前可以利用的资源就是pFilter中的一个参数:

BaseMiniportInstanceName
A pointer to a an NDIS_STRING type value that contains a counted Unicode string. This string specifies the friendly name of the interface for the base miniport adapter. For Windows 2000 and later versions, NDIS defines the NDIS_STRING type as a UNICODE_STRING type.
BaseMiniportName
The name of the base miniport adapter.
FilterModuleGuidName
The GUID name of the filter module that NDIS is attaching.
至于哪个可以用,还需测试~
分享到:
评论

相关推荐

    Filter驱动开发笔记

    大数据是否需要封装在多个MDL中发送 - **MDL**:当数据量较大时,可以将其分割成多个MDL进行发送。 - **封装方法**:通过NdisAllocateSharedMemory等函数来分配和管理MDL。 #### 31. 如何区分不同的...

    Altium封装库.zip

    在Altium封装库中,你会发现各种不同规格的电容和电阻,如电解电容、陶瓷电容、薄膜电阻、碳膜电阻等,每个封装都考虑到了实际尺寸、引脚间距和电气特性,以确保在PCB设计中实现精确布局。 "继电器"是一种利用电磁...

    13.信源数估计MDL算法MATLAB程序_信源数估计_MDL信源估计_mdl_MDLmatlab_

    描述中的“经典信源数估计算法,MDL算法,可直接下载运行,好用”表明这是一个可以实际操作的MATLAB程序,用户可以直接下载并运行,用于进行信源数量的估计,且被描述为易于使用和有效。 标签“信源数估计”是信息...

    mdl.rar_.mdl_matlab mdl_matlab simulink mdl_mdl_simulink .mdl

    在Simulink中,`mdl`模块通常指的是可重用的子系统,它们可以被封装成独立的组件,便于在多个模型中复用。这种模块化的设计思路有助于提高模型的组织性和可维护性。`mdl`文件中的源码可能包含对这些子系统的定义和...

    UML之RationalRose建模实例模型(.mdl文件)

    在这个"UML之RationalRose建模实例模型(.mdl文件)"中,我们有三个具体的应用场景:图书馆信息管理系统、保险信息管理系统以及医院信息管理系统。这些模型通过RationalRose进行构建,可以清晰地展示出各个系统的...

    MDL文件读取器

    MDL文件是Valve Software开发的游戏引擎中使用的三维模型文件格式,主要被应用在经典游戏如《半条命》(Half-Life)系列中。MDL文件格式包含了模型的几何信息、纹理贴图、动画帧以及骨骼绑定等数据,使得游戏中的...

    13_MDL信源数估计_MDL算法_信源估计_未知信源_信源数估计

    在信源估计问题中,MDL方法被用来确定数据来自多少个独立的信源。假设我们有一系列观测数据,这些数据可能来自一个或多个未知的离散信源。MDL的目标是找出能以最少描述长度解释这些数据的信源数目。 MDL算法通常...

    MDL文件制作详解(附带所需要的软件)

    MDL 是半条命这个游戏引擎中所定义的模型,这个模型文件封装了 3D的模型、材质 和各种骨骼动画(动作文件)。现在 mdl 模型已经被很多游戏和游戏引擎广泛使用。在该文章 中,我们以新建一个简单的 mdl 文件为例讲解 ...

    MDL MDX转换软件

    在游戏开发过程中,有时会遇到需要将一个游戏的模型资源用于另一个使用不同格式的游戏,这时就需要这样的转换工具。MDL MDX转换软件能够确保转换过程中的几何数据、纹理贴图、动画序列等关键元素得到准确无误地保留...

    在线商店等4个mdl文件

    随着时间的发展,MDL格式也在不断演进,适用于更多Valve的游戏,如《反恐精英》和《军团要塞》等。 2. **模型结构**:一个MDL文件通常由几个部分组成,包括顶点数据(描述模型的形状)、纹理坐标(决定表面贴图的...

    matlab 程序 mdl格式

    4. **数据流和信号处理**:mdl文件中的模型描述了数据如何在系统中的不同模块间流动。每个模块都接收输入信号,处理它们,并产生输出信号。 5. **多域仿真**:Simulink能够处理多物理域问题,如机械、电气、热力等...

    Bentley 一步步学习MDL_示例

    在C++编程中,头文件用于包含函数原型和其他声明,以便在多个源文件间共享。 3. **HelloWorld.h**:另一个可能包含MDL相关声明的头文件,可能包括自定义的数据结构、宏定义或常量。 4. **HelloWorld.mke**:这是...

    LIS2MDL驱动文件

    在本文中,我们将深入探讨如何使用STM32的硬件IIC(Inter-Integrated Circuit)接口,基于HAL(Hardware Abstraction Layer)库来开发LIS2MDL磁力计的驱动程序。LIS2MDL是一款由意法半导体(STMicroelectronics)...

    MDL模型浏览器

    6. **兼容性**:MDL模型浏览器通常支持多个版本的MDL格式,确保能够处理不同年代和游戏版本的模型。 使用MDL模型浏览器,游戏开发者可以更有效地进行模型调试、优化和资产交换。通过这种方式,他们可以避免在游戏中...

    lis3mdl.pdf

    此外,LIS3MDL具有自测试功能,允许用户在最终应用中检查传感器的功能是否正常。该设备还可以配置以生成磁场检测的中断信号,使其能够实时响应外部磁场的变化。 LIS3MDL具备I2C串行总线接口和SPI串行标准接口,支持...

    LwConvert安装包,可用于stk中mdl文件的转化

    标题中的“LwConvert安装包”指的是一个专门用于处理特定文件格式转换的工具,特别是针对“mdl”文件在STK(System Tool Kit)中的应用。STK是一款综合性的空间系统模拟和分析软件,广泛用于航天、通信、国防等领域...

    MDL算法,mdp算法,matlab

    在信号处理或者通信领域,源数估计是一个重要的问题,特别是在多用户检测、频谱分析和噪声源识别等场景。MDL算法可以通过比较不同假设下(即不同源数情况下)数据的编码长度,来决定最可能的源数。 "tapeerr"可能是...

    CS,MDL模型查看工具

    MDL模型查看工具,如在描述中提到的,是一种实用的辅助软件,允许用户在不运行游戏的情况下查看和分析CS游戏中的MDL模型。这种工具通常具备浏览模型的不同角度、播放模型动画、查看骨骼结构以及调整光照和材质效果等...

    lis3mdl参考手册.pdf

    由于其超小尺寸和重量,LIS3MDL采用小型、薄型、塑料、平面网格阵列封装(LGA-12 2x2x1),非常适合需要减小封装尺寸和重量的应用,有利于在电路板上的优化放置。设备的热稳定性得到保证,内部嵌入的高级算法可以...

    信源数估计MDL算法MATLAB程序.rar

    信源数估计是信息论中的一个重要问题,尤其是在数据压缩和信号处理领域。MDL(Minimum Description Length,最小描述长度)算法是一种广泛应用的统计模型选择方法,由Rissanen在1978年提出。MDL的基本思想是选择能够...

Global site tag (gtag.js) - Google Analytics