Это в некоторой степени общий вопрос, касающийся программирования Windows:
Являются ли сообщения Windows «надежными»?
Для пример (это только примеры ):
Можете ли вы быть уверены в том, что WM_MOUSEMOVE
произойдет до того, как курсор появится на вашем экране?
Можете ли вы быть уверены , что получите сообщение WM_DEVICECHANGE
, если устройство вставлено?
Можете ли вы быть уверены в том, что получите сообщение Сообщение WM_KILLFOCUS
, если ваше окно теряет фокус?
Или, другими словами: можете ли вы быть уверены , что получите соответствующее сообщение в нужное время, или вы всегда придется использовать защитный код на случай, если каким-то образом вы можете пропустить сообщение без явно документированной причины?
Это гарантия ed (AFAIK), что драйвер фильтра файловой системы не «пропустит» файловую операцию или уведомление об изменении.
Напротив, не гарантировано, что ReadDirectoryChangesW будет не пропустите уведомление. Фактически, он может пропустить довольно много, если его буфер переполнен.
Я не говорю о ситуации против злоумышленника (например, кто-то захватывает вашу оконную процедуру или устанавливает ловушку / фильтр); это в значительной степени аннулирует любую гарантию. Я спрашиваю только о непонятных ситуациях, которые действительно могут произойти, даже если никто не имел в виду ничего плохого намеренно, например, если какое-то случайное переполнение буфера, если кто-то использует SendInput
и т. Д., при условии, что вы контролируете ваш собственный код .