WEB开发网
开发学院网络安全防火墙 Windows软件防火墙实现技术简述 阅读

Windows软件防火墙实现技术简述

 2007-07-21 12:46:26 来源:WEB开发网   
核心提示: 得到这个ndis protocol的链表后,遍历表中的每一个ndis protocol,Windows软件防火墙实现技术简述(3),对于每一个ndis protocol,又各有一个链表,用来描述和该ndis protocol有联系的所有ndis miniport和该ndis protoco

得到这个ndis protocol的链表后,遍历表中的每一个ndis protocol,对于每一个ndis protocol,又各有一个链表,用来描述和该ndis protocol有联系的所有ndis miniport和该ndis protocol绑定的状态。每个这种状态块,叫做一个ndis open block。每个绑定的send(packets)handler和receive(packet)handler都在这个ndis open block里面。

struct _NDIS_OPEN_BLOCK
{
#ifdef __cplusplus
   NDIS_COMMON_OPEN_BLOCK NdisCommonOpenBlock;
#else
   NDIS_COMMON_OPEN_BLOCK;
#endif
#if defined(NDIS_WRAPPER)
  
   //
   // The stuff below is for CO drivers/protocols. This part is not allocated for CL drivers.
   //
   struct _NDIS_OPEN_CO
   {
   ....
   };
#endif
};
typedef struct _NDIS_COMMON_OPEN_BLOCK
{
   PVOID            MacHandle;     // needed for backward compatibility
   NDIS_HANDLE         BindingHandle;   // Miniport's open context
   PNDIS_MINIPORT_BLOCK    MiniportHandle;   // pointer to the miniport
   PNDIS_PROTOCOL_BLOCK    ProtocolHandle;   // pointer to our protocol
   NDIS_HANDLE         ProtocolBindingContext;// context when calling ProtXX funcs
   PNDIS_OPEN_BLOCK      MiniportNextOpen;  // used by adapter's OpenQueue
   PNDIS_OPEN_BLOCK      ProtocolNextOpen;  // used by protocol's OpenQueue
   NDIS_HANDLE         MiniportAdapterContext; // context for miniport
   BOOLEAN           Reserved1;
   BOOLEAN           Reserved2;
   BOOLEAN           Reserved3;
   BOOLEAN           Reserved4;
   PNDIS_STRING        BindDeviceName;
   KSPIN_LOCK         Reserved5;
   PNDIS_STRING        RootDeviceName;
   //
   // These are referenced by the macros used by protocols to call.
   // All of the ones referenced by the macros are internal NDIS handlers for the miniports
   //
   union
   {
     SEND_HANDLER      SendHandler;
     WAN_SEND_HANDLER    WanSendHandler;
   };
   TRANSFER_DATA_HANDLER    TransferDataHandler;
   //
   // These are referenced internally by NDIS
   //
   SEND_COMPLETE_HANDLER    SendCompleteHandler;
   TRANSFER_DATA_COMPLETE_HANDLER TransferDataCompleteHandler;
   RECEIVE_HANDLER       ReceiveHandler;
   RECEIVE_COMPLETE_HANDLER  ReceiveCompleteHandler;
   WAN_RECEIVE_HANDLER     WanReceiveHandler;
   REQUEST_COMPLETE_HANDLER  RequestCompleteHandler;
   //
   // NDIS 4.0 extensions
   //
   RECEIVE_PACKET_HANDLER   ReceivePacketHandler;
   SEND_PACKETS_HANDLER    SendPacketsHandler;
   //
   // More Cached Handlers
   //
   RESET_HANDLER        ResetHandler;
   REQUEST_HANDLER       RequestHandler;
   RESET_COMPLETE_HANDLER   ResetCompleteHandler;
   STATUS_HANDLER       StatusHandler;
   STATUS_COMPLETE_HANDLER   StatusCompleteHandler;
  
#if defined(NDIS_WRAPPER)
   ....
#endif
} NDIS_COMMON_OPEN_BLOCK;

上一页  1 2 3 4 5 6  下一页

Tags:Windows 软件 防火墙

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接