Я использую трассировку событий для Windows для мониторинга операций ввода-вывода на диске и использования процессов в сети. Я использовал ETW с KERNEL_LOGGER_NAME, EVENT_TRACE_FLAG_PROCESS, EVENT_TRACE_FLAG_DISK_IO, EVENT_TRACE_FLAG_NETWORK_TCPIP:
Я использую трассировку событий для Windows для мониторинга операций ввода-вывода на диске и использования процессов в сети. Я использовал ETW с KERNEL_LOGGER_NAME, EVENT_TRACE_FLAG_PROCESS, EVENT_TRACE_FLAG_DISK_IO, EVENT_TRACE_FLAG_NETWORK_TCPIP: [code]static const GUID GUID_DISK_IO = { 0x3d6fa8d4, 0xfe05, 0x11d0, { 0x9d, 0xda, 0x00, 0xc0, 0x4f, 0xd7, 0xba, 0x7c } }; static const GUID GUID_TCPIP = { 0x9a280ac0, 0xc8e0, 0x11d1, { 0x84, 0xe2, 0x00, 0xc0, 0x4f, 0xb9, 0x98, 0xa2 } };
VOID WINAPI ProcessMonitor::EventRecordCallback(PEVENT_RECORD pEventRecord) { bool isIo = false, isNet = false; if (pEventRecord->EventHeader.ProviderId == GUID_DISK_IO) isIo = true; if (pEventRecord->EventHeader.ProviderId == GUID_TCPIP) isNet = true; if (!isIo && !isNet) return; if (pEventRecord->EventHeader.EventDescriptor.Opcode != 10 && pEventRecord->EventHeader.EventDescriptor.Opcode != 11) return;