the supporting ndis protocol driver uses a per-open context structure in kernel mode to maintain separate information for each user mode handle returned by the rawether w32n_openadapter function. this means that a different bpf can be specified on each user mode adapter handle. the ndis protocol driver keeps per-open information in a list.
the ndis protocol driver walks the per-open context list and indicates the received packet on the first user mode handle whose bpf accepts the packet. 【程序编程相关:Ant应用(2)】
when a packet is received the driver´s behavior is simple: 【推荐阅读:Ant应用(1)】
【扩展信息:Ant应用(3)】
the driver does not attempt to look further into the per-open context list once the first bpf match is found and satisfied.
discussion
the memory and processor resources required to "lift" received packets from the kernel mode ndis protocol driver to the user mode win32 application are substantial.
in pcausa´s opinion, a design that would support "lifting" the same packet to more than one application would almost certainly degrade the performance of all applications using the rawether api and probably degrade the overall performance of the host workstation.
... 下一页