Я хотел бы иметь возможность отслеживать определенные системные вызовы, выполняемые процессом, в первую очередь вызовы файлового ввода-вывода. В Linux я, вероятно, могу обойтись без использования strace с подходящими параметрами, но как я могу это сделать в Windows?
Меня в первую очередь интересует запуск процесса и выяснение, какие файлы он прочитал и записал.
РЕДАКТИРОВАТЬ: я хочу сделать это программно из другого процесса. Мне известен ProcessMonitor, но я хотел бы получить данные в форме, которую я могу импортировать в другую программу для дальнейшего анализа.
РЕДАКТИРОВАТЬ: Если я сужу свои требования еще больше, вероятно, достаточно будет иметь возможность отслеживать вызовы CreateFile (). Меня действительно интересует только то, какие файлы открываются и открываются ли они для чтения / записи или просто для чтения. Другое требование, которое я на самом деле не утверждал, это то, что скорость довольно важна; Я планировал сделать это для таких вещей, как компиляция C ++-файла, и создание полного графического интерфейса, который генерирует 20-мегабайтный лог-файл, будет иметь чрезмерные накладные расходы.
РЕДАКТИРОВАТЬ: Было бы также хорошо, если бы он не требовал административных привилегий.