首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 驱动开发 >

NDIS6.0的filter如何丢包

2012-02-04 
NDIS6.0的filter怎么丢包?微软例子里的VOIDFilterSendNetBufferLists(INNDIS_HANDLEFilterModuleContext,I

NDIS6.0的filter怎么丢包?
微软例子里的
VOID   FilterSendNetBufferLists(
                IN     NDIS_HANDLE                 FilterModuleContext,
                IN     PNET_BUFFER_LIST         NetBufferLists,
                IN     NDIS_PORT_NUMBER         PortNumber,
                IN     ULONG                             SendFlags
                )

{
        PMS_FILTER                     pFilter   =   (PMS_FILTER)FilterModuleContext;
        NDIS_STATUS                 Status   =   NDIS_STATUS_SUCCESS;
        PNET_BUFFER_LIST         CurrNbl;
        BOOLEAN                         DispatchLevel;
  do
        {

            DispatchLevel   =   NDIS_TEST_SEND_AT_DISPATCH_LEVEL(SendFlags);
            if   (pFilter-> TrackSends)
                {
                        FILTER_ACQUIRE_LOCK(&pFilter-> Lock,   DispatchLevel);
                        CurrNbl   =   NetBufferLists;
                        while   (CurrNbl)
                        {
                                pFilter-> OutstandingSends++;
                                FILTER_LOG_SEND_REF(1,   pFilter,   CurrNbl,   pFilter-> OutstandingSends);

                                CurrNbl   =   NET_BUFFER_LIST_NEXT_NBL(CurrNbl);
                        }
                        FILTER_RELEASE_LOCK(&pFilter-> Lock,   DispatchLevel);
                }
                //
                //   If   necessary,   queue   the   NetBufferList   in   a   local   structure   for   later   processing
                //
                NdisFSendNetBufferLists(pFilter-> FilterHandle,   NetBufferLists,   PortNumber,   SendFlags);


        }
        while   (FALSE);

        DEBUGP(DL_TRACE,   ( " <===SendNetBufferList:   Status   =   %8x.\n ",   Status));



}
如果要禁止发包,应该怎么处理。


[解决办法]
禁止发包,就是不要把包交给下层的miniport driver啊。

判断好后,直接return resource 给上层,不要调NdisFSendNetBufferLists

热点排行