Форум: "WinAPI";
Текущий архив: 2009.08.16;
Скачать: [xml.tar.bz2];
ВнизХарактеристики сетевых адаптеров через WinPCap Найти похожие ветки
← →
SVD © (2008-06-25 10:51) [0]Добрый день
Определил через WinPCap количество и имена сетевых адаптеров. Теперь пытаюсь определить их характеристики с помощью PacketGetNetInfoEx:
var
pr:boolean;
s:string;
i,n:integer;
NPFIFAddr:PNPFIFAddr;
begin
for i:=0 to AdapterCnt-1 do
begin
s:=AdapterNames[i];
pr:=PacketGetNetInfoEx(pchar(s),NPFIFAddr,@n);
if pr then showmessage(inttostr(n));
end;
end;
PacketGetAdapterNames дает наличие в системе 2 адаптеров. Вызов PacketGetNetInfoEx для каждого адаптера отдельно (с указанием его имени в вызове функции) дает для первого адаптера n=0, для второго - n=1. При выполнении приведенного кода для обоих адаптеров возвращается 0, а в NPFIFAddr ничего не заполняется. При выполнении цикла в обратном порядке (for i:=AdapterCnt-1 downto 0 do) все работает. Вопрос: почему не работает прямой порядок? Неужто если натывкаемся на адаптер, у которого возвращается 0, то для всех остальных тоже будет 0? Что-то не верится...
← →
han_malign © (2008-06-25 12:34) [1]
var
pr:boolean;
s:string;
i,n:integer;
NPFIFAddr:array[0..17]of TNPFIFAddr;
begin
for i:=0 to AdapterCnt-1 do begin
s:=AdapterNames[i];
n:= Length(NPFIFAddr);
pr:=PacketGetNetInfoEx(pchar(s),@NPFIFAddr[0],@n);
if pr then showmessage(inttostr(n));
end;
end;
http://www.reactos.org/generated/doxygen/d1/db9/group__packet32.html#ga27
← →
Rouse_ © (2008-06-25 18:03) [2]
n:= Length(NPFIFAddr) * SizeOf(TNPFIFAddr);
← →
han_malign © (2008-06-27 11:32) [3]
> Rouse_ ©
> n:= Length(NPFIFAddr) * SizeOf(TNPFIFAddr);
- там исходники есть, при просмотре которых видно, что sizeof - это глюк матрицы... На реальном опыте это подтверждается...
← →
Rouse_ © (2008-06-27 11:44) [4]Согласен... приписку в скобках не прочитал :)
> Size of the array (in npf_if_addr).
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2009.08.16;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c