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