diff options
| author | Fuwn <[email protected]> | 2021-08-18 12:13:24 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2021-08-18 12:13:24 -0700 |
| commit | 3beb83cae8c2511c4c2def63d6c377b2232c04e8 (patch) | |
| tree | a0f4c14872633754978fadaad8d53e75db82765f | |
| parent | feat(soyuz): :rocket: (diff) | |
| download | soyuz-3beb83cae8c2511c4c2def63d6c377b2232c04e8.tar.xz soyuz-3beb83cae8c2511c4c2def63d6c377b2232c04e8.zip | |
refactor(include): move winapi things to soyuz/windows.h
| -rw-r--r-- | include/soyuz/library.hh | 50 | ||||
| -rw-r--r-- | include/soyuz/windows.hh | 58 | ||||
| -rw-r--r-- | soyuz/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | soyuz/library.cc | 1 | ||||
| -rw-r--r-- | soyuz/windows.cc | 1 |
5 files changed, 61 insertions, 50 deletions
diff --git a/include/soyuz/library.hh b/include/soyuz/library.hh index 57fc468..41668a7 100644 --- a/include/soyuz/library.hh +++ b/include/soyuz/library.hh @@ -11,56 +11,6 @@ #define NT_SUCCESS(status) (status >= 0) #define STATUS_INFO_LENGTH_MISMATCH ((NTSTATUS)0xC0000004L) -enum PROCESSINFOCLASS { - ProcessHandleInformation = 51 -}; - -typedef struct _PROCESS_HANDLE_TABLE_ENTRY_INFO { - HANDLE HandleValue; - ULONG_PTR HandleCount; - ULONG_PTR PointerCount; - ULONG GrantedAccess; - ULONG ObjectTypeIndex; - ULONG HandleAttributes; - ULONG Reserved; -} PROCESS_HANDLE_TABLE_ENTRY_INFO, * PPROCESS_HANDLE_TABLE_ENTRY_INFO; - -typedef struct _PROCESS_HANDLE_SNAPSHOT_INFORMATION { - ULONG_PTR NumberOfHandles; - ULONG_PTR Reserved; - PROCESS_HANDLE_TABLE_ENTRY_INFO Handles[1]; -} PROCESS_HANDLE_SNAPSHOT_INFORMATION, * PPROCESS_HANDLE_SNAPSHOT_INFORMATION; - -extern "C" NTSTATUS NTAPI NtQueryInformationProcess( - _In_ HANDLE ProcessHandle, - _In_ PROCESSINFOCLASS ProcessInformationClass, - _Out_writes_bytes_(ProcessInformationLength) PVOID ProcessInformation, - _In_ ULONG ProcessInformationLength, - _Out_opt_ PULONG ReturnLength -); - -typedef enum _OBJECT_INFORMATION_CLASS { - ObjectNameInformation = 1 -} OBJECT_INFORMATION_CLASS; - -typedef struct _UNICODE_STRING { - USHORT Length; - USHORT MaximumLength; - PWSTR Buffer; -} UNICODE_STRING; - -typedef struct _OBJECT_NAME_INFORMATION { - UNICODE_STRING Name; -} OBJECT_NAME_INFORMATION, * POBJECT_NAME_INFORMATION; - -extern "C" NTSTATUS NTAPI NtQueryObject( - _In_opt_ HANDLE Handle, - _In_ OBJECT_INFORMATION_CLASS ObjectInformationClass, - _Out_writes_bytes_opt_(ObjectInformationLength) PVOID ObjectInformation, - _In_ ULONG ObjectInformationLength, - _Out_opt_ PULONG ReturnLength -); - static auto enum_windows_proc(HWND hwnd, LPARAM lparam) -> BOOL; auto find_lunar() -> DWORD; auto delete_handle(DWORD pid) -> int; diff --git a/include/soyuz/windows.hh b/include/soyuz/windows.hh new file mode 100644 index 0000000..dd145ac --- /dev/null +++ b/include/soyuz/windows.hh @@ -0,0 +1,58 @@ +#ifndef SOYUZ_WINDOWS_HH +#define SOYUZ_WINDOWS_HH + +#pragma once + +#include <Windows.h> + +enum PROCESSINFOCLASS { + ProcessHandleInformation = 51 +}; + +typedef struct _PROCESS_HANDLE_TABLE_ENTRY_INFO { + HANDLE HandleValue; + ULONG_PTR HandleCount; + ULONG_PTR PointerCount; + ULONG GrantedAccess; + ULONG ObjectTypeIndex; + ULONG HandleAttributes; + ULONG Reserved; +} PROCESS_HANDLE_TABLE_ENTRY_INFO, * PPROCESS_HANDLE_TABLE_ENTRY_INFO; + +typedef struct _PROCESS_HANDLE_SNAPSHOT_INFORMATION { + ULONG_PTR NumberOfHandles; + ULONG_PTR Reserved; + PROCESS_HANDLE_TABLE_ENTRY_INFO Handles[1]; +} PROCESS_HANDLE_SNAPSHOT_INFORMATION, * PPROCESS_HANDLE_SNAPSHOT_INFORMATION; + +extern "C" NTSTATUS NTAPI NtQueryInformationProcess( + _In_ HANDLE ProcessHandle, + _In_ PROCESSINFOCLASS ProcessInformationClass, + _Out_writes_bytes_(ProcessInformationLength) PVOID ProcessInformation, + _In_ ULONG ProcessInformationLength, + _Out_opt_ PULONG ReturnLength +); + +typedef enum _OBJECT_INFORMATION_CLASS { + ObjectNameInformation = 1 +} OBJECT_INFORMATION_CLASS; + +typedef struct _UNICODE_STRING { + USHORT Length; + USHORT MaximumLength; + PWSTR Buffer; +} UNICODE_STRING; + +typedef struct _OBJECT_NAME_INFORMATION { + UNICODE_STRING Name; +} OBJECT_NAME_INFORMATION, * POBJECT_NAME_INFORMATION; + +extern "C" NTSTATUS NTAPI NtQueryObject( + _In_opt_ HANDLE Handle, + _In_ OBJECT_INFORMATION_CLASS ObjectInformationClass, + _Out_writes_bytes_opt_(ObjectInformationLength) PVOID ObjectInformation, + _In_ ULONG ObjectInformationLength, + _Out_opt_ PULONG ReturnLength +); + +#endif //SOYUZ_WINDOWS_HH diff --git a/soyuz/CMakeLists.txt b/soyuz/CMakeLists.txt index 99b4132..01eddb7 100644 --- a/soyuz/CMakeLists.txt +++ b/soyuz/CMakeLists.txt @@ -1,6 +1,7 @@ add_executable(${PROJECT_NAME} library.cc soyuz.cc + windows.cc ) target_include_directories(${PROJECT_NAME} PRIVATE ${PROJECT_SOURCE_DIR}/include) diff --git a/soyuz/library.cc b/soyuz/library.cc index 5a4fa90..5356bcd 100644 --- a/soyuz/library.cc +++ b/soyuz/library.cc @@ -8,6 +8,7 @@ #include "soyuz/library.hh" #include "soyuz/soyuz.hh" +#include "soyuz/windows.hh" static auto enum_windows_proc(HWND hwnd, LPARAM lparam) -> BOOL { int length = GetWindowTextLength(hwnd); diff --git a/soyuz/windows.cc b/soyuz/windows.cc new file mode 100644 index 0000000..df1d08f --- /dev/null +++ b/soyuz/windows.cc @@ -0,0 +1 @@ +#include "soyuz/windows.hh" |