2013-09-30 3 views
0

Я разрабатываю драйвер NDIS. NDIS отправляет пакет в минипорт. Как я узнаю, что пакет поступает из NDIS, это одноадресный, многоадресный или широковещательный пакет. Как узнать, что пакет является одноадресной, многоадресной или широковещательной.unicast, multicast, broadcast packet

+0

Возможно, вы могли бы [получить адрес назначения из пакета] (http://stackoverflow.com/questions/5281409/get-destination-address-of-a-received-udp-packet) и отработать его там , – paddy

+0

Как только я получаю адрес назначения, как я могу определить, что это одноадресный, многоадресный или широковещательный пакет. –

+0

Одноадресные, многоадресные и широковещательные адреса имеют разные характеристики. Проверьте http://en.wikipedia.org/wiki/Multicast_address – paddy

ответ

1

Если вы пишете драйвер Ethernet (или, по крайней мере, ваш носитель аналогичен MAC IEEE 802), вы можете использовать макросы ETH_IS_BROADCAST и ETH_IS_MULTICAST от ndis.h. Все, что не транслируется или многоадресной, одноадресное.

Код образца см. NICGetFrameTypeFromDestination от the netvmini sample.