feat!: reorganised stuff

This commit is contained in:
CT5
2026-01-26 12:05:08 +11:00
parent cbc0f68f94
commit c984fd7fd0
59 changed files with 147 additions and 46 deletions

View File

@@ -0,0 +1,23 @@
cmake_minimum_required(VERSION 4.0)
project(WinDurango.etwplus VERSION 1.0.0)
set(VERSION_SUFFIX "-dev.1") # used for non-stable versions, otherwise blank
set(CMAKE_CXX_STANDARD 20)
set(FILES
src/etwplus.cpp
include/WinDurango.etwplus/etwplus.h
)
add_library(WinDurango.etwplus SHARED ${FILES})
target_link_libraries(WinDurango.etwplus PRIVATE WinDurango.Common)
target_include_directories(WinDurango.etwplus PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/include/WinDurango.etwplus/
../WinDurango.Common/include/
)
set_target_properties(WinDurango.etwplus PROPERTIES
OUTPUT_NAME "etwplus"
)

View File

@@ -0,0 +1,46 @@
// etwplus.h : Header file for your target.
#pragma once
#include <Windows.h>
#include <evntprov.h>
typedef struct _ETX_FIELD_DESCRIPTOR
{
UINT8 Type : 5;
UINT8 IsLengthField : 1;
} ETX_FIELD_DESCRIPTOR, * PETX_FIELD_DESCRIPTOR, * LPETX_FIELD_DESCRIPTOR;
typedef struct _ETX_EVENT_DESCRIPTOR
{
EVENT_DESCRIPTOR EtwDescriptor;
LPCSTR Name;
LPCSTR SchemaVersion;
ETX_FIELD_DESCRIPTOR const* FieldDescriptors;
UINT8 NumFields;
UINT8 UploadEnabled;
UINT8 CurrentUploadEnabledState;
UINT8 DefaultUploadEnabledState;
INT8 CurrentPopulationSample;
INT8 DefaultPopulationSample;
UINT8 CurrentLatency;
UINT8 DefaultLatency;
UINT8 CurrentPriority;
UINT8 DefaultPriority;
} ETX_EVENT_DESCRIPTOR, * PETX_EVENT_DESCRIPTOR, * LPETX_EVENT_DESCRIPTOR;
typedef struct _ETX_PROVIDER_DESCRIPTOR
{
LPCSTR Name;
GUID Guid;
ULONG NumEvents;
PETX_EVENT_DESCRIPTOR EventDescriptors;
UINT8 UploadEnabled;
UINT8 CurrentUploadEnabledState;
UINT8 DefaultUploadEnabledState;
INT8 CurrentPopulationSample;
INT8 DefaultPopulationSample;
UINT8 CurrentLatency;
UINT8 DefaultLatency;
UINT8 CurrentPriority;
UINT8 DefaultPriority;
} ETX_PROVIDER_DESCRIPTOR, * PETX_PROVIDER_DESCRIPTOR, * LPETX_PROVIDER_DESCRIPTOR;

View File

@@ -0,0 +1,66 @@
// etwplus.cpp : Source file for your target.
//
#include "etwplus.h"
EXTERN_C ULONG WINAPI EtxEventWrite(
_In_ PETX_EVENT_DESCRIPTOR EventDescriptor,
_In_ PETX_PROVIDER_DESCRIPTOR ProviderDescriptor,
_In_ REGHANDLE RegHandle,
_In_ ULONG UserDataCount,
_In_opt_ PEVENT_DATA_DESCRIPTOR UserData)
{
UNREFERENCED_PARAMETER(EventDescriptor);
UNREFERENCED_PARAMETER(ProviderDescriptor);
UNREFERENCED_PARAMETER(RegHandle);
UNREFERENCED_PARAMETER(UserDataCount);
UNREFERENCED_PARAMETER(UserData);
return ERROR_SUCCESS;
}
EXTERN_C void WINAPI EtxFillCommonFields_v7(
_Out_ PEVENT_DATA_DESCRIPTOR EventData,
_Out_ PUINT8 Scratch,
_In_ SIZE_T ScratchSize)
{
UNREFERENCED_PARAMETER(EventData);
UNREFERENCED_PARAMETER(Scratch);
UNREFERENCED_PARAMETER(ScratchSize);
ZeroMemory(EventData, sizeof(*EventData));
}
EXTERN_C ULONG WINAPI EtxRegister(
_In_ PETX_PROVIDER_DESCRIPTOR ProviderDescriptor,
_Out_ PREGHANDLE RegHandle)
{
UNREFERENCED_PARAMETER(ProviderDescriptor);
*RegHandle = 0;
return ERROR_SUCCESS;
}
EXTERN_C void WINAPI EtxResumeUploading()
{
}
EXTERN_C void WINAPI EtxSuspendUploading()
{
}
EXTERN_C ULONG WINAPI EtxUnregister(
_In_ PETX_PROVIDER_DESCRIPTOR ProviderDescriptor,
_In_ PREGHANDLE RegHandle)
{
UNREFERENCED_PARAMETER(ProviderDescriptor);
UNREFERENCED_PARAMETER(RegHandle);
return ERROR_SUCCESS;
}
//
// Exports
//
#pragma comment(linker, "/export:EtxEventWrite")
#pragma comment(linker, "/export:EtxFillCommonFields_v7")
#pragma comment(linker, "/export:EtxRegister")
#pragma comment(linker, "/export:EtxResumeUploading")
#pragma comment(linker, "/export:EtxSuspendUploading")
#pragma comment(linker, "/export:EtxUnregister")