| Предыдущий | Следующий |
| ERROR_INVALID_HOOK_FILTER | ERROR_HOOK_NEEDS_HMOD |
ERROR_INVALID_FILTER_PROC
Обратный вызов перехватчика недействителен
Перехватчику Windows требуется обратный вызов, совместимый с HOOKPROC, время жизни кода которого охватывает весь период установки перехватчика. В зависимости от области процедура может должна находиться в DLL, чтобы выполняться в контексте, требуемом механизмом перехвата.
Этот статус настоятельно указывает проверить указатель процедуры и время жизни модуля до диагностики потока событий. Выгруженный код DLL, неправильные соглашения о вызовах или сигнатуры в интерфейсах внешних функций либо передача указателя на данные вместо обратного вызова могут сделать процедуру недействительной.
Что следует проверить
- Убедитесь, что адрес обратного вызова указывает на исполняемый код с документированной сигнатурой процедуры перехватчика.
- Сохраняйте содержащий модуль загруженным на протяжении всего времени жизни перехватчика.
- Для межпроцессной или глобальной области соблюдайте правила размещения DLL для
SetWindowsHookEx. - Проверьте закрепление FFI или делегата, чтобы управляемые либо динамические обратные вызовы не могли перемещаться или удаляться сборщиком мусора.
Если обратный вызов допустим, но отсутствует требуемый дескриптор модуля, ERROR_HOOK_NEEDS_HMOD является более конкретной ошибкой области или конфигурации.
Ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.