Привет всем и заранее спасибо за помощь,
Я использую функцию WriteFile (fileapi.h) для отправки кадров драйверу NDIS на уровне Ethernet Layer 2, непосредственно между MAC-адресами.
Кадры отправляются правильно, но в любом из тестов, которые я проводил, кадры отправляются дубликатами. Я обнаружил это, перехватив вывод с помощью WireShark, где представлено следующее:
Внутри кадра, который я отправляю, я увеличиваю счетчик при каждой отправке. Этот счетчик повторяется в двух последовательных кадрах, которым WireShark присвоил разные номера кадров. Это происходит не случайно из-за потери сообщений в сети и пересылки сообщений другим устройством в сети. Это происходит в каждом отправляемом кадре, они абсолютно одинаковы, включая счетчик, который увеличивается каждые два кадра.
Вопросы:
- Есть ли параметр в драйвере NDIS, который устанавливает этот дублирующий вывод.
- Я неправильно истолковываю захват WireShark.
Я видел этот пост и сделал, как рекомендуется, удалив и установив Ncap и WinCap, но это не имело значения.
Большое спасибо. С наилучшими пожеланиями.
bSuccess = (BOOLEAN)WriteFile(
Handle,
pWriteBuf,
PacketLength,
&BytesWritten,
NULL);
DWORD err = GetLastError();
printf("ERROR: %i", err);
if (!bSuccess)
{
PRINTF(("DoWriteProc: WriteFile failed on Handle %p\n", Handle));
break;
}