Устанавливать LSP на машину, даже виртуальную и отлаживаться — просто нереально. Он в силу своих багов нарушит работу системных сервисов и работать будет просто невозможно.
Я при отладке использовал различные методики.
1. Регистрировал свой LSP таким образом, чтоб его никто случайно не загрузил

. Для этого достаточно, чтобы он не был вверху списка доступных провайдеров.
1.1 Писал свои тестовые программки, в которых вызывал WSASocket и явно указывал GUID собственного провайдера. Отлаживать очень удобно, но это все же синтетические случаи, хочется иногда с реальными приложениями поработать, особенно, если интересен их трафик
1.2 Использовал "вирусные" технологии — заражал целевой процесс. Для этого был написан простенький инжектор, который создавал нужный процесс ( допустим IE ) в замороженном состоянии, инжектировал туда свою dll, которая загружала и слегка поправляла ws2_32.dll с целью опять же подсунуть GUID своего провайдера. Далее процесс будился. В результате, на машине существовал один процесс с моим LSP фильтром и можно было к нему приатачиться и поотлаживать.
2. В реализации метода WSPStartup просто смотрел в контексте какого процесса я нахожусь. Если процесс был не тот, что нужно, просто отдавал набор функций от нижележащего провайдера и исключал свое влияние на работу сети в этом процессе.