int main()
{
STARTUPINFO testi = {0};
PROCESS_INFORMATION proci;
int argc;
wchar_t ** argv = CommandLineToArgvW(GetCommandLineW(), &argc);
if (argc < 2)
ExitProcess(0);
testi.cb = sizeof(testi);
testi.dwFlags = STARTF_USESHOWWINDOW;
testi.wShowWindow = SW_HIDE;
CreateProcess(argv[1], NULL, NULL, NULL, FALSE, 0,NULL, NULL, &testi, &proci);
ExitProcess(0);
}
параллельно линии сделать "врезку" и записывать все сигналы на линии - можно, но тут возникают проблемы:
- сырой поток данных, снятый с линии, нужно успевать захватывать и сразу же где-то хранить. при подключенном устройстве по шине данных всегда гуляет очень много служебной информации (те же старты фреймов). знакомый имеет для таких целей 2 ГГц логический анализатор с встроенным SSD для поточной записи (и то продолжительность захвата сильно ограничена)
- декодировать захваченные данные (а это будет несколько десятков гигабайт) с физического уровня совсем не тривиально, необходимо будет отделить служебные данные, отделить данные, относящиеся к различным конечным точкам (Bulk, Interrupt, Control), наконец, проанализировать содержимое пакетов (например если это флешка, распарсить SCSI протокол).
гораздо удобнее принимать, анализировать и сохранять уже на уровне пакетов данных