ProcessID из ETW всегда возвращает 0xFFFFFFFF.C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 ProcessID из ETW всегда возвращает 0xFFFFFFFF.

Сообщение Anonymous »

Я использую трассировку событий для Windows для мониторинга операций ввода-вывода на диске и использования процессов в сети. Я использовал ETW с KERNEL_LOGGER_NAME, EVENT_TRACE_FLAG_PROCESS, EVENT_TRACE_FLAG_DISK_IO, EVENT_TRACE_FLAG_NETWORK_TCPIP:

Код: Выделить всё

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;

DWORD pid = pEventRecord->EventHeader.ProcessId;
ULONG dataSize = 0;
//std::cout Wnode.Flags = WNODE_FLAG_TRACED_GUID;
wcscpy_s((wchar_t*)(pSessionProperties + 1), 1024, KERNEL_LOGGER_NAME);
pSessionProperties->LogFileMode = EVENT_TRACE_REAL_TIME_MODE;
pSessionProperties->EnableFlags = EVENT_TRACE_FLAG_PROCESS |
EVENT_TRACE_FLAG_IMAGE_LOAD |
EVENT_TRACE_FLAG_DISK_IO |
EVENT_TRACE_FLAG_DISK_IO_INIT |
EVENT_TRACE_FLAG_FILE_IO |
EVENT_TRACE_FLAG_NETWORK_TCPIP;

ULONG status = StartTrace(&hSession, KERNEL_LOGGER_NAME, pSessionProperties);
if (status != ERROR_SUCCESS) {
std::cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/79819161/processid-from-etw-always-return-0xffffffff[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»