mirror of
https://github.com/bobranten/Ext4Fsd.git
synced 2025-10-29 21:18:30 -05:00
doc and build compatibility
This commit is contained in:
140
Ext2Srv/libraries/tlhelp32.h
Normal file
140
Ext2Srv/libraries/tlhelp32.h
Normal file
@@ -0,0 +1,140 @@
|
||||
/*
|
||||
tlhelp32.h - Include file for Tool help functions.
|
||||
|
||||
Written by Mumit Khan <khan@nanotech.wisc.edu>
|
||||
|
||||
This file is part of a free library for the Win32 API.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
*/
|
||||
#ifndef _TLHELP32_H
|
||||
#define _TLHELP32_H
|
||||
#if __GNUC__ >=3
|
||||
#pragma GCC system_header
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
#define HF32_DEFAULT 1
|
||||
#define HF32_SHARED 2
|
||||
#define LF32_FIXED 0x1
|
||||
#define LF32_FREE 0x2
|
||||
#define LF32_MOVEABLE 0x4
|
||||
#define MAX_MODULE_NAME32 255
|
||||
#define TH32CS_SNAPHEAPLIST 0x1
|
||||
#define TH32CS_SNAPPROCESS 0x2
|
||||
#define TH32CS_SNAPTHREAD 0x4
|
||||
#define TH32CS_SNAPMODULE 0x8
|
||||
#define TH32CS_SNAPALL (TH32CS_SNAPHEAPLIST|TH32CS_SNAPPROCESS|TH32CS_SNAPTHREAD|TH32CS_SNAPMODULE)
|
||||
#define TH32CS_INHERIT 0x80000000
|
||||
typedef struct tagHEAPLIST32 {
|
||||
DWORD dwSize;
|
||||
DWORD th32ProcessID;
|
||||
DWORD th32HeapID;
|
||||
DWORD dwFlags;
|
||||
} HEAPLIST32,*PHEAPLIST32,*LPHEAPLIST32;
|
||||
typedef struct tagHEAPENTRY32 {
|
||||
DWORD dwSize;
|
||||
HANDLE hHandle;
|
||||
DWORD dwAddress;
|
||||
DWORD dwBlockSize;
|
||||
DWORD dwFlags;
|
||||
DWORD dwLockCount;
|
||||
DWORD dwResvd;
|
||||
DWORD th32ProcessID;
|
||||
DWORD th32HeapID;
|
||||
} HEAPENTRY32,*PHEAPENTRY32,*LPHEAPENTRY32;
|
||||
typedef struct tagPROCESSENTRY32W {
|
||||
DWORD dwSize;
|
||||
DWORD cntUsage;
|
||||
DWORD th32ProcessID;
|
||||
DWORD th32DefaultHeapID;
|
||||
DWORD th32ModuleID;
|
||||
DWORD cntThreads;
|
||||
DWORD th32ParentProcessID;
|
||||
LONG pcPriClassBase;
|
||||
DWORD dwFlags;
|
||||
WCHAR szExeFile[MAX_PATH];
|
||||
} PROCESSENTRY32W,*PPROCESSENTRY32W,*LPPROCESSENTRY32W;
|
||||
typedef struct tagPROCESSENTRY32 {
|
||||
DWORD dwSize;
|
||||
DWORD cntUsage;
|
||||
DWORD th32ProcessID;
|
||||
DWORD th32DefaultHeapID;
|
||||
DWORD th32ModuleID;
|
||||
DWORD cntThreads;
|
||||
DWORD th32ParentProcessID;
|
||||
LONG pcPriClassBase;
|
||||
DWORD dwFlags;
|
||||
CHAR szExeFile[MAX_PATH];
|
||||
} PROCESSENTRY32,*PPROCESSENTRY32,*LPPROCESSENTRY32;
|
||||
typedef struct tagTHREADENTRY32 {
|
||||
DWORD dwSize;
|
||||
DWORD cntUsage;
|
||||
DWORD th32ThreadID;
|
||||
DWORD th32OwnerProcessID;
|
||||
LONG tpBasePri;
|
||||
LONG tpDeltaPri;
|
||||
DWORD dwFlags;
|
||||
} THREADENTRY32,*PTHREADENTRY32,*LPTHREADENTRY32;
|
||||
typedef struct tagMODULEENTRY32W {
|
||||
DWORD dwSize;
|
||||
DWORD th32ModuleID;
|
||||
DWORD th32ProcessID;
|
||||
DWORD GlblcntUsage;
|
||||
DWORD ProccntUsage;
|
||||
BYTE *modBaseAddr;
|
||||
DWORD modBaseSize;
|
||||
HMODULE hModule;
|
||||
WCHAR szModule[MAX_MODULE_NAME32 + 1];
|
||||
WCHAR szExePath[MAX_PATH];
|
||||
} MODULEENTRY32W,*PMODULEENTRY32W,*LPMODULEENTRY32W;
|
||||
typedef struct tagMODULEENTRY32 {
|
||||
DWORD dwSize;
|
||||
DWORD th32ModuleID;
|
||||
DWORD th32ProcessID;
|
||||
DWORD GlblcntUsage;
|
||||
DWORD ProccntUsage;
|
||||
BYTE *modBaseAddr;
|
||||
DWORD modBaseSize;
|
||||
HMODULE hModule;
|
||||
char szModule[MAX_MODULE_NAME32 + 1];
|
||||
char szExePath[MAX_PATH];
|
||||
} MODULEENTRY32,*PMODULEENTRY32,*LPMODULEENTRY32;
|
||||
BOOL WINAPI Heap32First(LPHEAPENTRY32,DWORD,DWORD);
|
||||
BOOL WINAPI Heap32ListFirst(HANDLE,LPHEAPLIST32);
|
||||
BOOL WINAPI Heap32ListNext(HANDLE,LPHEAPLIST32);
|
||||
BOOL WINAPI Heap32Next(LPHEAPENTRY32);
|
||||
BOOL WINAPI Module32First(HANDLE,LPMODULEENTRY32);
|
||||
BOOL WINAPI Module32FirstW(HANDLE,LPMODULEENTRY32W);
|
||||
BOOL WINAPI Module32Next(HANDLE,LPMODULEENTRY32);
|
||||
BOOL WINAPI Module32NextW(HANDLE,LPMODULEENTRY32W);
|
||||
BOOL WINAPI Process32First(HANDLE,LPPROCESSENTRY32);
|
||||
BOOL WINAPI Process32FirstW(HANDLE,LPPROCESSENTRY32W);
|
||||
BOOL WINAPI Process32Next(HANDLE,LPPROCESSENTRY32);
|
||||
BOOL WINAPI Process32NextW(HANDLE,LPPROCESSENTRY32W);
|
||||
BOOL WINAPI Thread32First(HANDLE,LPTHREADENTRY32);
|
||||
BOOL WINAPI Thread32Next(HANDLE,LPTHREADENTRY32);
|
||||
BOOL WINAPI Toolhelp32ReadProcessMemory(DWORD,LPCVOID,LPVOID,DWORD,LPDWORD);
|
||||
HANDLE WINAPI CreateToolhelp32Snapshot(DWORD,DWORD);
|
||||
#ifdef UNICODE
|
||||
#define LPMODULEENTRY32 LPMODULEENTRY32W
|
||||
#define LPPROCESSENTRY32 LPPROCESSENTRY32W
|
||||
#define MODULEENTRY32 MODULEENTRY32W
|
||||
#define Module32First Module32FirstW
|
||||
#define Module32Next Module32NextW
|
||||
#define PMODULEENTRY32 PMODULEENTRY32W
|
||||
#define PPROCESSENTRY32 PPROCESSENTRY32W
|
||||
#define PROCESSENTRY32 PROCESSENTRY32W
|
||||
#define Process32First Process32FirstW
|
||||
#define Process32Next Process32NextW
|
||||
#endif /* UNICODE */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif /* _TLHELP32_H */
|
||||
|
||||
177
Ext2Srv/libraries/wtsapi32.h
Normal file
177
Ext2Srv/libraries/wtsapi32.h
Normal file
@@ -0,0 +1,177 @@
|
||||
#ifndef _WTSAPI32_H
|
||||
#define _WTSAPI32_H
|
||||
#if __GNUC__ >= 3
|
||||
#pragma GCC system_header
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#if (_WIN32_WINNT >= 0x0501)
|
||||
// session notification message
|
||||
#define WM_WTSSESSION_CHANGE 0x02B1
|
||||
|
||||
typedef enum _WTS_INFO_CLASS {
|
||||
WTSInitialProgram = 0,
|
||||
WTSApplicationName = 1,
|
||||
WTSWorkingDirectory = 2,
|
||||
WTSOEMId = 3,
|
||||
WTSSessionId = 4,
|
||||
WTSUserName = 5,
|
||||
WTSWinStationName = 6,
|
||||
WTSDomainName = 7,
|
||||
WTSConnectState = 8,
|
||||
WTSClientBuildNumber = 9,
|
||||
WTSClientName = 10,
|
||||
WTSClientDirectory = 11,
|
||||
WTSClientProductId = 12,
|
||||
WTSClientHardwareId = 13,
|
||||
WTSClientAddress = 14,
|
||||
WTSClientDisplay = 15,
|
||||
WTSClientProtocolType = 16,
|
||||
WTSIdleTime = 17,
|
||||
WTSLogonTime = 18,
|
||||
WTSIncomingBytes = 19,
|
||||
WTSOutgoingBytes = 20,
|
||||
WTSIncomingFrames = 21,
|
||||
WTSOutgoingFrames = 22,
|
||||
WTSClientInfo = 23,
|
||||
WTSSessionInfo = 24
|
||||
} WTS_INFO_CLASS;
|
||||
|
||||
typedef enum _WTS_CONNECTSTATE_CLASS {
|
||||
WTSActive,
|
||||
WTSConnected,
|
||||
WTSConnectQuery,
|
||||
WTSShadow,
|
||||
WTSDisconnected,
|
||||
WTSIdle,
|
||||
WTSListen,
|
||||
WTSReset,
|
||||
WTSDown,
|
||||
WTSInit
|
||||
} WTS_CONNECTSTATE_CLASS;
|
||||
|
||||
// session notification message flags
|
||||
#define WTS_CONSOLE_CONNECT 0x1
|
||||
#define WTS_CONSOLE_DISCONNECT 0x2
|
||||
#define WTS_REMOTE_CONNECT 0x3
|
||||
#define WTS_REMOTE_DISCONNECT 0x4
|
||||
#define WTS_SESSION_LOGON 0x5
|
||||
#define WTS_SESSION_LOGOFF 0x6
|
||||
#define WTS_SESSION_LOCK 0x7
|
||||
#define WTS_SESSION_UNLOCK 0x8
|
||||
#define WTS_SESSION_REMOTE_CONTROL 0x9
|
||||
|
||||
// WTSRegisterSessionNotifiction flags
|
||||
#define NOTIFY_FOR_THIS_SESSION 0
|
||||
#define NOTIFY_FOR_ALL_SESSIONS 1
|
||||
|
||||
BOOL WINAPI WTSRegisterSessionNotification(HWND hWnd, DWORD dwFlags);
|
||||
BOOL WINAPI WTSUnRegisterSessionNotification(HWND hWnd);
|
||||
BOOL WINAPI WTSQueryUserToken(ULONG SessionId, PHANDLE pToken);
|
||||
|
||||
#endif /* _WIN32_WINNT >= 0x0501 */
|
||||
|
||||
#if (_WIN32_WINNT >= 0x0500)
|
||||
|
||||
typedef struct _WTS_SESSION_INFOW {
|
||||
DWORD SessionId;
|
||||
LPWSTR pWinStationName;
|
||||
WTS_CONNECTSTATE_CLASS State;
|
||||
} WTS_SESSION_INFOW, *PWTS_SESSION_INFOW;
|
||||
|
||||
typedef struct _WTS_SESSION_INFOA {
|
||||
DWORD SessionId;
|
||||
LPSTR pWinStationName;
|
||||
WTS_CONNECTSTATE_CLASS State;
|
||||
} WTS_SESSION_INFOA, *PWTS_SESSION_INFOA;
|
||||
|
||||
#ifdef UNICODE
|
||||
#define WTS_SESSION_INFO WTS_SESSION_INFOW
|
||||
#define PWTS_SESSION_INFO PWTS_SESSION_INFOW
|
||||
#else
|
||||
#define WTS_SESSION_INFO WTS_SESSION_INFOA
|
||||
#define PWTS_SESSION_INFO PWTS_SESSION_INFOA
|
||||
#endif
|
||||
|
||||
// WTSWaitSystemEvent local server handle
|
||||
#define WTS_CURRENT_SERVER_HANDLE 0
|
||||
#define WTS_CURRENT_SESSION ((DWORD)-1)
|
||||
|
||||
// WTSWaitSystemEvent flags
|
||||
#define WTS_EVENT_NONE 0x00000000
|
||||
#define WTS_EVENT_CREATE 0x00000001
|
||||
#define WTS_EVENT_DELETE 0x00000002
|
||||
#define WTS_EVENT_RENAME 0x00000004
|
||||
#define WTS_EVENT_CONNECT 0x00000008
|
||||
#define WTS_EVENT_DISCONNECT 0x00000010
|
||||
#define WTS_EVENT_LOGON 0x00000020
|
||||
#define WTS_EVENT_LOGOFF 0x00000040
|
||||
#define WTS_EVENT_STATECHANGE 0x00000080
|
||||
#define WTS_EVENT_LICENSE 0x00000100
|
||||
#define WTS_EVENT_ALL 0x7FFFFFFF
|
||||
#define WTS_EVENT_FLUSH 0x80000000
|
||||
|
||||
BOOL WINAPI WTSQuerySessionInformationA(HANDLE hServer, DWORD SessionId, WTS_INFO_CLASS WTSInfoClass,
|
||||
LPSTR *ppBuffer, DWORD *pBytesReturned);
|
||||
BOOL WINAPI WTSQuerySessionInformationW(HANDLE hServer, DWORD SessionId, WTS_INFO_CLASS WTSInfoClass,
|
||||
LPTSTR *ppBuffer, DWORD *pBytesReturned);
|
||||
BOOL WINAPI WTSWaitSystemEvent(HANDLE hServer, DWORD EventMask, DWORD* pEventFlags);
|
||||
BOOL WINAPI WTSDisconnectSession(HANDLE hServer, DWORD SessionId, BOOL bWait);
|
||||
BOOL WINAPI WTSEnumerateSessionsW(HANDLE hServer, DWORD Reserved, DWORD Version,
|
||||
PWTS_SESSION_INFOW *ppSessionInfo,
|
||||
PDWORD pCount);
|
||||
BOOL WINAPI WTSEnumerateSessionsA(HANDLE hServer, DWORD Reserved, DWORD Version,
|
||||
PWTS_SESSION_INFOA *ppSessionInfo,
|
||||
PDWORD pCount);
|
||||
void WINAPI WTSFreeMemory(PVOID pMemory);
|
||||
|
||||
#ifdef UNICODE
|
||||
#define WTSEnumerateSessions WTSEnumerateSessionsW
|
||||
#define WTSQuerySessionInformation WTSQuerySessionInformationW
|
||||
#else
|
||||
#define WTSEnumerateSessions WTSEnumerateSessionsA
|
||||
#define WTSQuerySessionInformation WTSQuerySessionInformationA
|
||||
#endif
|
||||
|
||||
BOOL WTSSendMessageA(
|
||||
HANDLE hServer,
|
||||
DWORD SessionId,
|
||||
LPSTR pTitle,
|
||||
DWORD TitleLength,
|
||||
LPSTR pMessage,
|
||||
DWORD MessageLength,
|
||||
DWORD Style,
|
||||
DWORD Timeout,
|
||||
DWORD *pResponse,
|
||||
BOOL bWait
|
||||
);
|
||||
|
||||
BOOL WTSSendMessageW(
|
||||
HANDLE hServer,
|
||||
DWORD SessionId,
|
||||
LPWSTR pTitle,
|
||||
DWORD TitleLength,
|
||||
LPWSTR pMessage,
|
||||
DWORD MessageLength,
|
||||
DWORD Style,
|
||||
DWORD Timeout,
|
||||
DWORD *pResponse,
|
||||
BOOL bWait
|
||||
);
|
||||
|
||||
#ifdef UNICODE
|
||||
#define WTSSendMessage WTSSendMessageW
|
||||
#else
|
||||
#define WTSSendMessage WTSSendMessageA
|
||||
#endif
|
||||
|
||||
#endif /* _WIN32_WINNT >= 0x0500 */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* _WTSAPI32_H */
|
||||
@@ -2,7 +2,12 @@
|
||||
About
|
||||
-----
|
||||
|
||||
This is a branch of the Ext2Fsd project by Matt Wu where I try to implement support for metadata checksums and jbd2. I have also updated the project so it can be compiled with Visual Studio 2017 and Visual Studio 2019. This is work in progress. If you need a stable driver you should get the latest official release from http://www.ext2fsd.com. If you want to try this branch you should still install the oficial release and then copy this driver over the old in \windows\system32\drivers. Bo Branten.
|
||||
This is a branch of the Ext2Fsd project by Matt Wu where I try to implement support for metadata
|
||||
checksums and jbd2. I have also updated the project so it can be compiled with Visual Studio 2017
|
||||
and Visual Studio 2019. This is work in progress. If you need a stable driver you should get the
|
||||
latest official release from http://www.ext2fsd.com. If you want to try this branch you should
|
||||
still install the oficial release and then copy this driver over the old in \windows\system32\drivers.
|
||||
Bo Branten.
|
||||
|
||||
|
||||
Introduction
|
||||
|
||||
Reference in New Issue
Block a user