Здравствуйте, Владимир!
Как я понял оба ответа Ваши, спасибо большое! А что это за такая *соответствующая* секретная документация

? Например WFS_EXEE_PTR_MEDIAINSERTED в спецификации от CEN я ненашел. Не видел я и таких примеров. В спецификации описан типичный сценарий StartUp->Open->Register->...->Deregister->Close->CleanUp. Собственно непонятен шаг регистрации.
Во-первых, описаны 4 вида событий SERVICE_EVENTS, USER_EVENTS, SYSTEV_EVENTS, EXECUTE_EVENTS. Судя по описанию мне в основном нужны события последнего типа, но там же сказано что они посылаются *только* приложению которое вызывало WFSExecute. Мне же как раз нужно чтобы мое приложение перехватывало события которые происходят в системе, мое же приложения никаких функций провайдеров использовать не будет.
Во-вторых, далее описан пример вызова функции
hr = WFSRegister( hService,USER_EVENTS|SERVICE_EVENTS,hWnd );
как я понимаю здесь hService это то что мне вернуло WFSOpen по LogicalName. Но если я незнаю какие устройства присутствуют в системе? Я не нашел ни одной функции типа EnumerateServices. Можно конечно прочитать реестр, но это же не факт что все эти сервисы запущены. Как правильно поступить в этой ситуации?