Имитация ошибок файла (например, ERROR_ACCESS_DENIED) в Windows - PullRequest
2 голосов
/ 13 декабря 2010

Для целей тестирования и разработки было бы неплохо как-то смоделировать (ложные) ошибки доступа к файлам к локальным файлам. Например, даже если приложение правильно открыло файл с соответствующими ограничивающими флагами общего доступа, все равно может произойти попытка доступа к файлу (через любую из функций Win32 API или вашу любимую платформу, которая внутренне просто вызовет любую из функции Win32 API) может произойти сбой.

Единственный пример, который мне удалось отследить, - это антивирусный сканер на машине, но я думаю, что могут быть и другие причины. (В комментарии этого вопроса Люк упоминает что-то о «драйверах фильтра файловой системы».)

FWIW, я знаю несколько возможностей «симулировать» проблемы с файлами, которые я не рассматриваю как хорошие решения, либо потому, что они требуют много ручной работы, либо потому, что они не подходят для каждого приложения / файл:

  • Поместите файл на сетевой диск или съемное устройство хранения - таким образом, вы можете просто испортить устройство (отключить, заполнить диск, ...).
  • Откройте процесс приложения в Process Explorer и закройте дескриптор файла, который вы хотите проверить.

Таким образом, вопрос на самом деле заключается в том, существуют ли ((полу) автоматизированные) инструменты, которые могут испортить доступ к файлу (на диске NTFS), даже если приложение уже открыло файл с соответствующим (для приложение) поделиться флагами.

1 Ответ

1 голос
/ 13 декабря 2010

Holodeck подразумевает включение перехвата Win32 API, который позволит вам манипулировать кодами возврата, необходимыми для Fault Injection.

Если ваш интересующий вас API-интерфейс четко определен, вы, вероятно, могли бы сделать это самостоятельно, используя подход Импорт таблицы адресов, описанный здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...