Вызовы функций драйвера Winpcap

мой C++ приложение использует Winpcap для разных вещей (в основном учусь прямо сейчас).

Как я могу это проверить Winpcap установлен, выдает ошибку при запуске приложения, если это не так?

Кроме того, может кто-нибудь пролить свет на то, как Winpcap функции драйвера называются? Я знаю, что я включаю pcap.h, чтобы вызвать функции, но как они передаются OS/Driver? Это не как WINAPI звонки или SYSCALLs это?

1

Решение

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

введите описание изображения здесь

Чтобы облегчить это, вы можете просто предположить, что winpcap присутствует

  • Комплектация winpcap с установкой вашего программного обеспечения, с учетом любых лицензионных соображений, которые могут возникнуть у вашего программного обеспечения.
  • Попросить пользователя установить winpcap самостоятельно, до или сразу после установки вашего программного обеспечения.

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

Чтобы избежать самого окна сообщения об ошибке Windows, вы можете,

  • Работайте с winpcap динамически, явно загружая его LoadLibrary(), получая адреса метода с GetProcAddress() и выручить, если это не может быть найдено.

Я полагаю, что именно так Wireshark делает это или, по крайней мере, делал это в прошлом.

Для последнего также может помочь, если вы можете проверить, если HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\WinPcapInst существует (когда-то это был рекомендуемый способ проверки наличия winpcap в списке рассылки для разработчиков) еще до того, как вы попытались выполнить LoadLibrary (), чтобы убедиться в правильности установки в системе. Вы также можете проверить наличие этого ключа в установщике вашего программного обеспечения, если таковой имеется.

Обратите внимание, что этот последний вариант динамической работы с winpcap является наименее удобным. Если вы только экспериментируете, вы должны следовать официальному руководству. Вы не сказали, какой компилятор вы используете, тем не менее, официальный способ работы с winpcap обрисован в общих чертах в этом документе.

Обычно winpcap взаимодействует с драйвером асинхронно, но как пользователь winpcap вы должны придерживаться официального интерфейса и не вызывать драйвер напрямую. Вот схема высокого уровня того, как это работает. Я взял это из Руководство по внутренним устройствам водителя NPF страница интернета. Вам предлагается прочитать его и ответить на конкретные вопросы.

Источник: www.winpcap.org/docs/docs_412/html/group__NPF.html

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]