added phlib exports

git-svn-id: svn://svn.code.sf.net/p/processhacker/code@3422 21ef857c-d57f-4fe0-8362-d861dc6d29cd
This commit is contained in:
wj32
2010-07-24 06:51:35 +00:00
parent 2d8d381275
commit bd7ddb9c25
12 changed files with 905 additions and 144 deletions
+10 -10
View File
@@ -47,7 +47,7 @@
AdditionalOptions="/MP"
Optimization="0"
AdditionalIncludeDirectories="../phlib/include;../phlib/pcre;include"
PreprocessorDefinitions="WIN32;DEBUG;_WINDOWS"
PreprocessorDefinitions="WIN32;DEBUG;_WINDOWS;PHLIB_EXPORT"
StringPooling="true"
MinimalRebuild="false"
BasicRuntimeChecks="3"
@@ -128,7 +128,7 @@
AdditionalOptions="/MP"
Optimization="0"
AdditionalIncludeDirectories="../phlib/include;../phlib/pcre;include"
PreprocessorDefinitions="WIN64;DEBUG;_WINDOWS"
PreprocessorDefinitions="WIN64;DEBUG;_WINDOWS;PHLIB_EXPORT"
StringPooling="true"
MinimalRebuild="false"
BasicRuntimeChecks="3"
@@ -211,7 +211,7 @@
Optimization="2"
EnableIntrinsicFunctions="true"
AdditionalIncludeDirectories="../phlib/include;../phlib/pcre;include"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;PHLIB_EXPORT"
StringPooling="true"
RuntimeLibrary="0"
BufferSecurityCheck="false"
@@ -296,7 +296,7 @@
Optimization="2"
EnableIntrinsicFunctions="true"
AdditionalIncludeDirectories="../phlib/include;../phlib/pcre;include"
PreprocessorDefinitions="WIN64;NDEBUG;_WINDOWS"
PreprocessorDefinitions="WIN64;NDEBUG;_WINDOWS;PHLIB_EXPORT"
StringPooling="true"
RuntimeLibrary="0"
BufferSecurityCheck="false"
@@ -357,8 +357,6 @@
<Files>
<Filter
Name="phlib"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath="..\phlib\basesup.c"
@@ -643,6 +641,8 @@
</Filter>
<Filter
Name="Process Hacker"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath=".\about.c"
@@ -660,6 +660,10 @@
RelativePath=".\anawait.c"
>
</File>
<File
RelativePath=".\appsup.c"
>
</File>
<File
RelativePath=".\chcol.c"
>
@@ -828,10 +832,6 @@
RelativePath=".\ssndmsg.c"
>
</File>
<File
RelativePath=".\support.c"
>
</File>
<File
RelativePath=".\sysinfo.c"
>
+1 -1
View File
@@ -260,7 +260,7 @@ VOID PhWriteProcessTree(
__inout PPH_FILE_STREAM FileStream
);
// support
// appsup
BOOLEAN PhGetProcessIsSuspended(
__in PSYSTEM_PROCESS_INFORMATION Process
+34 -8
View File
@@ -14,41 +14,67 @@ typedef struct _PH_FAST_LOCK
VOID PhFastLockInitialization();
VOID PhInitializeFastLock(
PHLIBAPI
VOID
NTAPI
PhInitializeFastLock(
__out PPH_FAST_LOCK FastLock
);
VOID PhDeleteFastLock(
PHLIBAPI
VOID
NTAPI
PhDeleteFastLock(
__inout PPH_FAST_LOCK FastLock
);
#define PhAcquireFastLockExclusive PhfAcquireFastLockExclusive
__mayRaise VOID FASTCALL PhfAcquireFastLockExclusive(
__mayRaise
PHLIBAPI
VOID
FASTCALL
PhfAcquireFastLockExclusive(
__inout PPH_FAST_LOCK FastLock
);
#define PhAcquireFastLockShared PhfAcquireFastLockShared
__mayRaise VOID FASTCALL PhfAcquireFastLockShared(
__mayRaise
PHLIBAPI
VOID
FASTCALL
PhfAcquireFastLockShared(
__inout PPH_FAST_LOCK FastLock
);
#define PhReleaseFastLockExclusive PhfReleaseFastLockExclusive
VOID FASTCALL PhfReleaseFastLockExclusive(
PHLIBAPI
VOID
FASTCALL
PhfReleaseFastLockExclusive(
__inout PPH_FAST_LOCK FastLock
);
#define PhReleaseFastLockShared PhfReleaseFastLockShared
VOID FASTCALL PhfReleaseFastLockShared(
PHLIBAPI
VOID
FASTCALL
PhfReleaseFastLockShared(
__inout PPH_FAST_LOCK FastLock
);
#define PhTryAcquireFastLockExclusive PhfTryAcquireFastLockExclusive
BOOLEAN FASTCALL PhfTryAcquireFastLockExclusive(
PHLIBAPI
BOOLEAN
FASTCALL
PhfTryAcquireFastLockExclusive(
__inout PPH_FAST_LOCK FastLock
);
#define PhTryAcquireFastLockShared PhfTryAcquireFastLockShared
BOOLEAN FASTCALL PhfTryAcquireFastLockShared(
PHLIBAPI
BOOLEAN
FASTCALL
PhfTryAcquireFastLockShared(
__inout PPH_FAST_LOCK FastLock
);
+3
View File
@@ -50,11 +50,13 @@ typedef struct _PH_GRAPH_DRAW_INFO
BOOLEAN PhGraphControlInitialization();
PHLIBAPI
VOID PhDrawGraph(
__in HDC hdc,
__in PPH_GRAPH_DRAW_INFO DrawInfo
);
PHLIBAPI
VOID PhSetGraphText(
__in HDC hdc,
__inout PPH_GRAPH_DRAW_INFO DrawInfo,
@@ -64,6 +66,7 @@ VOID PhSetGraphText(
__in ULONG Align
);
PHLIBAPI
HWND PhCreateGraphControl(
__in HWND ParentHandle,
__in INT_PTR Id
+1
View File
@@ -10,6 +10,7 @@
BOOLEAN PhHexEditInitialization();
PHLIBAPI
HWND PhCreateHexEditControl(
__in HWND ParentHandle,
__in INT_PTR Id
+46 -2
View File
@@ -122,37 +122,42 @@ typedef struct _ETWREG_BASIC_INFORMATION
ULONG_PTR SessionId;
} ETWREG_BASIC_INFORMATION, *PETWREG_BASIC_INFORMATION;
NTSTATUS KphInit();
PHLIBAPI
NTSTATUS KphConnect(
__out PHANDLE KphHandle,
__in_opt PWSTR DeviceName
);
PHLIBAPI
NTSTATUS KphConnect2(
__out PHANDLE KphHandle,
__in_opt PWSTR DeviceName,
__in PWSTR FileName
);
PHLIBAPI
NTSTATUS KphDisconnect(
__in HANDLE KphHandle
);
PHLIBAPI
NTSTATUS KphInstall(
__in_opt PWSTR DeviceName,
__in PWSTR FileName
);
PHLIBAPI
NTSTATUS KphUninstall(
__in_opt PWSTR DeviceName
);
PHLIBAPI
NTSTATUS KphGetFeatures(
__in HANDLE KphHandle,
__out PULONG Features
);
PHLIBAPI
NTSTATUS KphOpenProcess(
__in HANDLE KphHandle,
__out PHANDLE ProcessHandle,
@@ -160,6 +165,7 @@ NTSTATUS KphOpenProcess(
__in ACCESS_MASK DesiredAccess
);
PHLIBAPI
NTSTATUS KphOpenProcessToken(
__in HANDLE KphHandle,
__out PHANDLE TokenHandle,
@@ -167,6 +173,7 @@ NTSTATUS KphOpenProcessToken(
__in ACCESS_MASK DesiredAccess
);
PHLIBAPI
NTSTATUS KphOpenProcessJob(
__in HANDLE KphHandle,
__out PHANDLE JobHandle,
@@ -174,22 +181,26 @@ NTSTATUS KphOpenProcessJob(
__in ACCESS_MASK DesiredAccess
);
PHLIBAPI
NTSTATUS KphSuspendProcess(
__in HANDLE KphHandle,
__in HANDLE ProcessHandle
);
PHLIBAPI
NTSTATUS KphResumeProcess(
__in HANDLE KphHandle,
__in HANDLE ProcessHandle
);
PHLIBAPI
NTSTATUS KphTerminateProcess(
__in HANDLE KphHandle,
__in HANDLE ProcessHandle,
__in NTSTATUS ExitStatus
);
PHLIBAPI
NTSTATUS KphReadVirtualMemory(
__in HANDLE KphHandle,
__in HANDLE ProcessHandle,
@@ -199,6 +210,7 @@ NTSTATUS KphReadVirtualMemory(
__out_opt PULONG ReturnLength
);
PHLIBAPI
NTSTATUS KphWriteVirtualMemory(
__in HANDLE KphHandle,
__in HANDLE ProcessHandle,
@@ -208,6 +220,7 @@ NTSTATUS KphWriteVirtualMemory(
__out_opt PULONG ReturnLength
);
PHLIBAPI
NTSTATUS KphUnsafeReadVirtualMemory(
__in HANDLE KphHandle,
__in HANDLE ProcessHandle,
@@ -217,30 +230,35 @@ NTSTATUS KphUnsafeReadVirtualMemory(
__out_opt PULONG ReturnLength
);
PHLIBAPI
NTSTATUS KphGetProcessProtected(
__in HANDLE KphHandle,
__in HANDLE ProcessId,
__out PBOOLEAN IsProtected
);
PHLIBAPI
NTSTATUS KphSetProcessProtected(
__in HANDLE KphHandle,
__in HANDLE ProcessId,
__in BOOLEAN IsProtected
);
PHLIBAPI
NTSTATUS KphSetExecuteOptions(
__in HANDLE KphHandle,
__in HANDLE ProcessHandle,
__in ULONG ExecuteOptions
);
PHLIBAPI
NTSTATUS KphSetProcessToken(
__in HANDLE KphHandle,
__in HANDLE SourceProcessId,
__in HANDLE TargetProcessId
);
PHLIBAPI
NTSTATUS KphQueryInformationProcess(
__in HANDLE KphHandle,
__in HANDLE ProcessHandle,
@@ -250,6 +268,7 @@ NTSTATUS KphQueryInformationProcess(
__out_opt PULONG ReturnLength
);
PHLIBAPI
NTSTATUS KphQueryInformationThread(
__in HANDLE KphHandle,
__in HANDLE ThreadHandle,
@@ -259,6 +278,7 @@ NTSTATUS KphQueryInformationThread(
__out_opt PULONG ReturnLength
);
PHLIBAPI
NTSTATUS KphSetInformationProcess(
__in HANDLE KphHandle,
__in HANDLE ProcessHandle,
@@ -267,6 +287,7 @@ NTSTATUS KphSetInformationProcess(
__in ULONG ProcessInformationLength
);
PHLIBAPI
NTSTATUS KphSetInformationThread(
__in HANDLE KphHandle,
__in HANDLE ThreadHandle,
@@ -275,6 +296,7 @@ NTSTATUS KphSetInformationThread(
__in ULONG ThreadInformationLength
);
PHLIBAPI
NTSTATUS KphOpenThread(
__in HANDLE KphHandle,
__out PHANDLE ThreadHandle,
@@ -282,6 +304,7 @@ NTSTATUS KphOpenThread(
__in ACCESS_MASK DesiredAccess
);
PHLIBAPI
NTSTATUS KphOpenThreadProcess(
__in HANDLE KphHandle,
__out PHANDLE ProcessHandle,
@@ -289,30 +312,35 @@ NTSTATUS KphOpenThreadProcess(
__in ACCESS_MASK DesiredAccess
);
PHLIBAPI
NTSTATUS KphTerminateThread(
__in HANDLE KphHandle,
__in HANDLE ThreadHandle,
__in NTSTATUS ExitStatus
);
PHLIBAPI
NTSTATUS KphDangerousTerminateThread(
__in HANDLE KphHandle,
__in HANDLE ThreadHandle,
__in NTSTATUS ExitStatus
);
PHLIBAPI
NTSTATUS KphGetContextThread(
__in HANDLE KphHandle,
__in HANDLE ThreadHandle,
__inout PCONTEXT ThreadContext
);
PHLIBAPI
NTSTATUS KphSetContextThread(
__in HANDLE KphHandle,
__in HANDLE ThreadHandle,
__in PCONTEXT ThreadContext
);
PHLIBAPI
NTSTATUS KphCaptureStackBackTraceThread(
__in HANDLE KphHandle,
__in HANDLE ThreadHandle,
@@ -323,18 +351,21 @@ NTSTATUS KphCaptureStackBackTraceThread(
__out_opt PULONG BackTraceHash
);
PHLIBAPI
NTSTATUS KphGetThreadWin32Thread(
__in HANDLE KphHandle,
__in HANDLE ThreadHandle,
__out PPVOID Win32Thread
);
PHLIBAPI
NTSTATUS KphAssignImpersonationToken(
__in HANDLE KphHandle,
__in HANDLE ThreadHandle,
__in HANDLE TokenHandle
);
PHLIBAPI
NTSTATUS KphQueryProcessHandles(
__in HANDLE KphHandle,
__in HANDLE ProcessHandle,
@@ -343,6 +374,7 @@ NTSTATUS KphQueryProcessHandles(
__out_opt PULONG ReturnLength
);
PHLIBAPI
NTSTATUS KphGetHandleObjectName(
__in HANDLE KphHandle,
__in HANDLE ProcessHandle,
@@ -352,6 +384,7 @@ NTSTATUS KphGetHandleObjectName(
__out_opt PULONG ReturnLength
);
PHLIBAPI
NTSTATUS KphZwQueryObject(
__in HANDLE KphHandle,
__in HANDLE ProcessHandle,
@@ -362,6 +395,7 @@ NTSTATUS KphZwQueryObject(
__out_opt PULONG ReturnLength
);
PHLIBAPI
NTSTATUS KphDuplicateObject(
__in HANDLE KphHandle,
__in HANDLE SourceProcessHandle,
@@ -373,6 +407,7 @@ NTSTATUS KphDuplicateObject(
__in ULONG Options
);
PHLIBAPI
NTSTATUS KphSetHandleAttributes(
__in HANDLE KphHandle,
__in HANDLE ProcessHandle,
@@ -380,12 +415,14 @@ NTSTATUS KphSetHandleAttributes(
__in ULONG Flags
);
PHLIBAPI
NTSTATUS KphSetHandleGrantedAccess(
__in HANDLE KphHandle,
__in HANDLE Handle,
__in ACCESS_MASK GrantedAccess
);
PHLIBAPI
NTSTATUS KphGetProcessId(
__in HANDLE KphHandle,
__in HANDLE ProcessHandle,
@@ -393,6 +430,7 @@ NTSTATUS KphGetProcessId(
__out PHANDLE ProcessId
);
PHLIBAPI
NTSTATUS KphGetThreadId(
__in HANDLE KphHandle,
__in HANDLE ProcessHandle,
@@ -401,6 +439,7 @@ NTSTATUS KphGetThreadId(
__out_opt PHANDLE ProcessId
);
PHLIBAPI
NTSTATUS KphOpenNamedObject(
__in HANDLE KphHandle,
__out PHANDLE Handle,
@@ -408,6 +447,7 @@ NTSTATUS KphOpenNamedObject(
__in POBJECT_ATTRIBUTES ObjectAttributes
);
PHLIBAPI
NTSTATUS KphOpenDirectoryObject(
__in HANDLE KphHandle,
__out PHANDLE DirectoryHandle,
@@ -415,12 +455,14 @@ NTSTATUS KphOpenDirectoryObject(
__in POBJECT_ATTRIBUTES ObjectAttributes
);
PHLIBAPI
NTSTATUS KphOpenDriver(
__in HANDLE KphHandle,
__out PHANDLE DriverHandle,
__in POBJECT_ATTRIBUTES ObjectAttributes
);
PHLIBAPI
NTSTATUS KphQueryInformationDriver(
__in HANDLE KphHandle,
__in HANDLE DriverHandle,
@@ -430,12 +472,14 @@ NTSTATUS KphQueryInformationDriver(
__out_opt PULONG ReturnLength
);
PHLIBAPI
NTSTATUS KphOpenType(
__in HANDLE KphHandle,
__out PHANDLE TypeHandle,
__in POBJECT_ATTRIBUTES ObjectAttributes
);
PHLIBAPI
NTSTATUS KphQueryInformationEtwReg(
__in HANDLE KphHandle,
__in HANDLE ProcessHandle,
File diff suppressed because it is too large Load Diff
+406 -99
View File
@@ -19,6 +19,14 @@
#define UNICODE
#endif
#if defined(PHLIB_EXPORT)
#define PHLIBAPI __declspec(dllexport)
#elif defined(PHLIB_IMPORT)
#define PHLIBAPI __declspec(dllimport)
#else
#define PHLIBAPI
#endif
#include <ntwin.h>
#include <ntbasic.h>
#include <phnt.h>
@@ -160,7 +168,10 @@ extern LIST_ENTRY PhDbgThreadListHead;
extern PH_QUEUED_LOCK PhDbgThreadListLock;
#endif
HANDLE PhCreateThread(
PHLIBAPI
HANDLE
NTAPI
PhCreateThread(
__in_opt SIZE_T StackSize,
__in PUSER_THREAD_START_ROUTINE StartAddress,
__in PVOID Parameter
@@ -168,27 +179,43 @@ HANDLE PhCreateThread(
// misc. system
VOID PhQuerySystemTime(
PHLIBAPI
VOID
NTAPI
PhQuerySystemTime(
__out PLARGE_INTEGER SystemTime
);
VOID PhQueryTimeZoneBias(
PHLIBAPI
VOID
NTAPI
PhQueryTimeZoneBias(
__out PLARGE_INTEGER TimeZoneBias
);
VOID PhSystemTimeToLocalTime(
PHLIBAPI
VOID
NTAPI
PhSystemTimeToLocalTime(
__in PLARGE_INTEGER SystemTime,
__out PLARGE_INTEGER LocalTime
);
VOID PhLocalTimeToSystemTime(
PHLIBAPI
VOID
NTAPI
PhLocalTimeToSystemTime(
__in PLARGE_INTEGER LocalTime,
__out PLARGE_INTEGER SystemTime
);
// heap
__mayRaise PVOID PhAllocate(
__mayRaise
PHLIBAPI
PVOID
NTAPI
PhAllocate(
__in SIZE_T Size
);
@@ -201,11 +228,18 @@ PVOID PhAllocateExSafe(
__in ULONG Flags
);
VOID PhFree(
PHLIBAPI
VOID
NTAPI
PhFree(
__in __post_invalid PVOID Memory
);
__mayRaise PVOID PhReAllocate(
__mayRaise
PHLIBAPI
PVOID
NTAPI
PhReAllocate(
__in PVOID Memory,
__in SIZE_T Size
);
@@ -215,12 +249,18 @@ PVOID PhReAllocateSafe(
__in SIZE_T Size
);
PVOID PhAllocatePage(
PHLIBAPI
PVOID
NTAPI
PhAllocatePage(
__in SIZE_T Size,
__out_opt PSIZE_T NewSize
);
VOID PhFreePage(
PHLIBAPI
VOID
NTAPI
PhFreePage(
__in PVOID Memory
);
@@ -355,23 +395,35 @@ typedef struct _PH_EVENT
#define PH_EVENT_INIT { PH_EVENT_REFCOUNT_INC, NULL }
VOID FASTCALL PhfInitializeEvent(
PHLIBAPI
VOID
FASTCALL
PhfInitializeEvent(
__out PPH_EVENT Event
);
#define PhSetEvent PhfSetEvent
VOID FASTCALL PhfSetEvent(
PHLIBAPI
VOID
FASTCALL
PhfSetEvent(
__inout PPH_EVENT Event
);
#define PhWaitForEvent PhfWaitForEvent
BOOLEAN FASTCALL PhfWaitForEvent(
PHLIBAPI
BOOLEAN
FASTCALL
PhfWaitForEvent(
__inout PPH_EVENT Event,
__in_opt PLARGE_INTEGER Timeout
);
#define PhResetEvent PhfResetEvent
VOID FASTCALL PhfResetEvent(
PHLIBAPI
VOID
FASTCALL
PhfResetEvent(
__inout PPH_EVENT Event
);
@@ -417,19 +469,31 @@ typedef struct _PH_RUNDOWN_WAIT_BLOCK
PH_EVENT WakeEvent;
} PH_RUNDOWN_WAIT_BLOCK, *PPH_RUNDOWN_WAIT_BLOCK;
VOID FASTCALL PhfInitializeRundownProtection(
PHLIBAPI
VOID
FASTCALL
PhfInitializeRundownProtection(
__out PPH_RUNDOWN_PROTECT Protection
);
BOOLEAN FASTCALL PhfAcquireRundownProtection(
PHLIBAPI
BOOLEAN
FASTCALL
PhfAcquireRundownProtection(
__inout PPH_RUNDOWN_PROTECT Protection
);
VOID FASTCALL PhfReleaseRundownProtection(
PHLIBAPI
VOID
FASTCALL
PhfReleaseRundownProtection(
__inout PPH_RUNDOWN_PROTECT Protection
);
VOID FASTCALL PhfWaitForRundownProtection(
PHLIBAPI
VOID
FASTCALL
PhfWaitForRundownProtection(
__inout PPH_RUNDOWN_PROTECT Protection
);
@@ -511,16 +575,25 @@ typedef struct _PH_INITONCE
#define PH_INITONCE_INIT { PH_INITONCE_UNINITIALIZED, PH_EVENT_INIT }
#define PhInitializeInitOnce PhfInitializeInitOnce
VOID FASTCALL PhfInitializeInitOnce(
PHLIBAPI
VOID
FASTCALL
PhfInitializeInitOnce(
__out PPH_INITONCE InitOnce
);
BOOLEAN FASTCALL PhfBeginInitOnce(
PHLIBAPI
BOOLEAN
FASTCALL
PhfBeginInitOnce(
__inout PPH_INITONCE InitOnce
);
#define PhEndInitOnce PhfEndInitOnce
VOID FASTCALL PhfEndInitOnce(
PHLIBAPI
VOID
FASTCALL
PhfEndInitOnce(
__inout PPH_INITONCE InitOnce
);
@@ -540,15 +613,24 @@ FORCEINLINE BOOLEAN PhBeginInitOnce(
extern PPH_OBJECT_TYPE PhStringType;
#endif
PSTR PhDuplicateAnsiStringZ(
PHLIBAPI
PSTR
NTAPI
PhDuplicateAnsiStringZ(
__in PSTR String
);
PSTR PhDuplicateAnsiStringZSafe(
PHLIBAPI
PSTR
NTAPI
PhDuplicateAnsiStringZSafe(
__in PSTR String
);
BOOLEAN PhCopyAnsiStringZ(
PHLIBAPI
BOOLEAN
NTAPI
PhCopyAnsiStringZ(
__in PSTR InputBuffer,
__in ULONG InputCount,
__out_ecount_z_opt(OutputCount) PSTR OutputBuffer,
@@ -556,7 +638,10 @@ BOOLEAN PhCopyAnsiStringZ(
__out_opt PULONG ReturnCount
);
BOOLEAN PhCopyUnicodeStringZ(
PHLIBAPI
BOOLEAN
NTAPI
PhCopyUnicodeStringZ(
__in PWSTR InputBuffer,
__in ULONG InputCount,
__out_ecount_z_opt(OutputCount) PWSTR OutputBuffer,
@@ -564,7 +649,10 @@ BOOLEAN PhCopyUnicodeStringZ(
__out_opt PULONG ReturnCount
);
BOOLEAN PhCopyUnicodeStringZFromAnsi(
PHLIBAPI
BOOLEAN
NTAPI
PhCopyUnicodeStringZFromAnsi(
__in PSTR InputBuffer,
__in ULONG InputCount,
__out_ecount_z_opt(OutputCount) PWSTR OutputBuffer,
@@ -725,47 +813,74 @@ typedef struct _PH_STRING
WCHAR Buffer[1];
} PH_STRING, *PPH_STRING;
PPH_STRING PhCreateString(
PHLIBAPI
PPH_STRING
NTAPI
PhCreateString(
__in PWSTR Buffer
);
PPH_STRING PhCreateStringEx(
PHLIBAPI
PPH_STRING
NTAPI
PhCreateStringEx(
__in_opt PWSTR Buffer,
__in SIZE_T Length
);
PPH_STRING PhCreateStringFromAnsi(
PHLIBAPI
PPH_STRING
NTAPI
PhCreateStringFromAnsi(
__in PSTR Buffer
);
PPH_STRING PhCreateStringFromAnsiEx(
PHLIBAPI
PPH_STRING
NTAPI
PhCreateStringFromAnsiEx(
__in PSTR Buffer,
__in SIZE_T Length
);
PPH_STRING PhConcatStrings(
PHLIBAPI
PPH_STRING
NTAPI
PhConcatStrings(
__in ULONG Count,
...
);
#define PH_CONCAT_STRINGS_LENGTH_CACHE_SIZE 16
PPH_STRING PhConcatStrings_V(
PHLIBAPI
PPH_STRING
NTAPI
PhConcatStrings_V(
__in ULONG Count,
__in va_list ArgPtr
);
PPH_STRING PhConcatStrings2(
PHLIBAPI
PPH_STRING
NTAPI
PhConcatStrings2(
__in PWSTR String1,
__in PWSTR String2
);
PPH_STRING PhFormatString(
PHLIBAPI
PPH_STRING
NTAPI
PhFormatString(
__in __format_string PWSTR Format,
...
);
PPH_STRING PhFormatString_V(
PHLIBAPI
PPH_STRING
NTAPI
PhFormatString_V(
__in __format_string PWSTR Format,
__in va_list ArgPtr
);
@@ -1280,20 +1395,32 @@ typedef struct _PH_ANSI_STRING
CHAR Buffer[1];
} PH_ANSI_STRING, *PPH_ANSI_STRING;
PPH_ANSI_STRING PhCreateAnsiString(
PHLIBAPI
PPH_ANSI_STRING
NTAPI
PhCreateAnsiString(
__in PSTR Buffer
);
PPH_ANSI_STRING PhCreateAnsiStringEx(
PHLIBAPI
PPH_ANSI_STRING
NTAPI
PhCreateAnsiStringEx(
__in_opt PSTR Buffer,
__in SIZE_T Length
);
PPH_ANSI_STRING PhCreateAnsiStringFromUnicode(
PHLIBAPI
PPH_ANSI_STRING
NTAPI
PhCreateAnsiStringFromUnicode(
__in PWSTR Buffer
);
PPH_ANSI_STRING PhCreateAnsiStringFromUnicodeEx(
PHLIBAPI
PPH_ANSI_STRING
NTAPI
PhCreateAnsiStringFromUnicodeEx(
__in PWSTR Buffer,
__in SIZE_T Length
);
@@ -1395,66 +1522,102 @@ typedef struct _PH_STRING_BUILDER
PPH_STRING String;
} PH_STRING_BUILDER, *PPH_STRING_BUILDER;
VOID PhInitializeStringBuilder(
PHLIBAPI
VOID
NTAPI
PhInitializeStringBuilder(
__out PPH_STRING_BUILDER StringBuilder,
__in ULONG InitialCapacity
);
VOID PhDeleteStringBuilder(
PHLIBAPI
VOID
NTAPI
PhDeleteStringBuilder(
__inout PPH_STRING_BUILDER StringBuilder
);
PPH_STRING PhReferenceStringBuilderString(
PHLIBAPI
PPH_STRING
NTAPI
PhReferenceStringBuilderString(
__in PPH_STRING_BUILDER StringBuilder
);
VOID PhStringBuilderAppend(
PHLIBAPI
VOID
NTAPI
PhStringBuilderAppend(
__inout PPH_STRING_BUILDER StringBuilder,
__in PPH_STRING String
);
VOID PhStringBuilderAppend2(
PHLIBAPI
VOID
NTAPI
PhStringBuilderAppend2(
__inout PPH_STRING_BUILDER StringBuilder,
__in PWSTR String
);
VOID PhStringBuilderAppendEx(
PHLIBAPI
VOID
NTAPI
PhStringBuilderAppendEx(
__inout PPH_STRING_BUILDER StringBuilder,
__in PWSTR String,
__in ULONG Length
);
VOID PhStringBuilderAppendChar(
PHLIBAPI
VOID
NTAPI
PhStringBuilderAppendChar(
__inout PPH_STRING_BUILDER StringBuilder,
__in WCHAR Character
);
VOID PhStringBuilderAppendFormat(
PHLIBAPI
VOID
NTAPI
PhStringBuilderAppendFormat(
__inout PPH_STRING_BUILDER StringBuilder,
__in __format_string PWSTR Format,
...
);
VOID PhStringBuilderInsert(
PHLIBAPI
VOID
NTAPI
PhStringBuilderInsert(
__inout PPH_STRING_BUILDER StringBuilder,
__in ULONG Index,
__in PPH_STRING String
);
VOID PhStringBuilderInsert2(
PHLIBAPI
VOID
NTAPI
PhStringBuilderInsert2(
__inout PPH_STRING_BUILDER StringBuilder,
__in ULONG Index,
__in PWSTR String
);
VOID PhStringBuilderInsertEx(
PHLIBAPI
VOID
NTAPI
PhStringBuilderInsertEx(
__inout PPH_STRING_BUILDER StringBuilder,
__in ULONG Index,
__in PWSTR String,
__in ULONG Length
);
VOID PhStringBuilderRemove(
PHLIBAPI
VOID
NTAPI
PhStringBuilderRemove(
__inout PPH_STRING_BUILDER StringBuilder,
__in ULONG StartIndex,
__in ULONG Count
@@ -1481,50 +1644,77 @@ typedef struct _PH_LIST
PPVOID Items;
} PH_LIST, *PPH_LIST;
PPH_LIST PhCreateList(
PHLIBAPI
PPH_LIST
NTAPI
PhCreateList(
__in ULONG InitialCapacity
);
VOID PhAddListItem(
PHLIBAPI
VOID
NTAPI
PhAddListItem(
__inout PPH_LIST List,
__in PVOID Item
);
VOID PhAddListItems(
PHLIBAPI
VOID
NTAPI
PhAddListItems(
__inout PPH_LIST List,
__in PPVOID Items,
__in ULONG Count
);
VOID PhClearList(
PHLIBAPI
VOID
NTAPI
PhClearList(
__inout PPH_LIST List
);
__success(return != -1)
ULONG PhIndexOfListItem(
PHLIBAPI
ULONG
NTAPI
PhIndexOfListItem(
__in PPH_LIST List,
__in PVOID Item
);
VOID PhInsertListItem(
PHLIBAPI
VOID
NTAPI
PhInsertListItem(
__inout PPH_LIST List,
__in ULONG Index,
__in PVOID Item
);
VOID PhInsertListItems(
PHLIBAPI
VOID
NTAPI
PhInsertListItems(
__inout PPH_LIST List,
__in ULONG Index,
__in PPVOID Items,
__in ULONG Count
);
VOID PhRemoveListItem(
PHLIBAPI
VOID
NTAPI
PhRemoveListItem(
__inout PPH_LIST List,
__in ULONG Index
);
VOID PhRemoveListItems(
PHLIBAPI
VOID
NTAPI
PhRemoveListItems(
__inout PPH_LIST List,
__in ULONG StartIndex,
__in ULONG Count
@@ -1548,7 +1738,10 @@ typedef INT (NTAPI *PPH_COMPARE_FUNCTION)(
__in PVOID Context
);
VOID PhSortList(
PHLIBAPI
VOID
NTAPI
PhSortList(
__in PPH_LIST List,
__in PPH_COMPARE_FUNCTION CompareFunction,
__in PVOID Context
@@ -1899,21 +2092,33 @@ C_ASSERT(FIELD_OFFSET(PH_FREE_LIST_ENTRY, ListEntry) == 0x0);
C_ASSERT(FIELD_OFFSET(PH_FREE_LIST_ENTRY, Body) == 0x10);
#endif
VOID PhInitializeFreeList(
PHLIBAPI
VOID
NTAPI
PhInitializeFreeList(
__out PPH_FREE_LIST FreeList,
__in SIZE_T Size,
__in ULONG MaximumCount
);
VOID PhDeleteFreeList(
PHLIBAPI
VOID
NTAPI
PhDeleteFreeList(
__inout PPH_FREE_LIST FreeList
);
PVOID PhAllocateFromFreeList(
PHLIBAPI
PVOID
NTAPI
PhAllocateFromFreeList(
__inout PPH_FREE_LIST FreeList
);
VOID PhFreeToFreeList(
PHLIBAPI
VOID
NTAPI
PhFreeToFreeList(
__inout PPH_FREE_LIST FreeList,
__in PVOID Memory
);
@@ -1973,22 +2178,34 @@ typedef struct _PH_CALLBACK
PH_QUEUED_LOCK BusyCondition;
} PH_CALLBACK, *PPH_CALLBACK;
VOID PhInitializeCallback(
PHLIBAPI
VOID
NTAPI
PhInitializeCallback(
__out PPH_CALLBACK Callback
);
VOID PhDeleteCallback(
PHLIBAPI
VOID
NTAPI
PhDeleteCallback(
__inout PPH_CALLBACK Callback
);
VOID PhRegisterCallback(
PHLIBAPI
VOID
NTAPI
PhRegisterCallback(
__inout PPH_CALLBACK Callback,
__in PPH_CALLBACK_FUNCTION Function,
__in PVOID Context,
__out PPH_CALLBACK_REGISTRATION Registration
);
VOID PhRegisterCallbackEx(
PHLIBAPI
VOID
NTAPI
PhRegisterCallbackEx(
__inout PPH_CALLBACK Callback,
__in PPH_CALLBACK_FUNCTION Function,
__in PVOID Context,
@@ -1996,12 +2213,18 @@ VOID PhRegisterCallbackEx(
__out PPH_CALLBACK_REGISTRATION Registration
);
VOID PhUnregisterCallback(
PHLIBAPI
VOID
NTAPI
PhUnregisterCallback(
__inout PPH_CALLBACK Callback,
__inout PPH_CALLBACK_REGISTRATION Registration
);
VOID PhInvokeCallback(
PHLIBAPI
VOID
NTAPI
PhInvokeCallback(
__in PPH_CALLBACK Callback,
__in PVOID Parameter
);
@@ -2046,45 +2269,72 @@ FORCEINLINE VOID PhIncrementMultipleCallbackSync(
// general
ULONG PhGetPrimeNumber(
PHLIBAPI
ULONG
NTAPI
PhGetPrimeNumber(
__in ULONG Minimum
);
ULONG PhRoundUpToPowerOfTwo(
PHLIBAPI
ULONG
NTAPI
PhRoundUpToPowerOfTwo(
__in ULONG Number
);
ULONG PhExponentiate(
PHLIBAPI
ULONG
NTAPI
PhExponentiate(
__in ULONG Base,
__in ULONG Exponent
);
ULONG64 PhExponentiate64(
PHLIBAPI
ULONG64
NTAPI
PhExponentiate64(
__in ULONG64 Base,
__in ULONG Exponent
);
ULONG PhLog2(
PHLIBAPI
ULONG
NTAPI
PhLog2(
__in ULONG Exponent
);
BOOLEAN PhHexStringToBuffer(
PHLIBAPI
BOOLEAN
NTAPI
PhHexStringToBuffer(
__in PPH_STRING String,
__out_bcount(String->Length / sizeof(WCHAR) / 2) PUCHAR Buffer
);
PPH_STRING PhBufferToHexString(
PHLIBAPI
PPH_STRING
NTAPI
PhBufferToHexString(
__in PUCHAR Buffer,
__in ULONG Length
);
BOOLEAN PhStringToInteger64(
PHLIBAPI
BOOLEAN
NTAPI
PhStringToInteger64(
__in PPH_STRINGREF String,
__in_opt ULONG Base,
__out PLONG64 Integer
);
PPH_STRING PhIntegerToString64(
PHLIBAPI
PPH_STRING
NTAPI
PhIntegerToString64(
__in LONG64 Integer,
__in_opt ULONG Base,
__in BOOLEAN Signed
@@ -2097,7 +2347,10 @@ PPH_STRING PhIntegerToString64(
#define PH_TIMESPAN_HMSM 1
#define PH_TIMESPAN_DHMS 2
VOID PhPrintTimeSpan(
PHLIBAPI
VOID
NTAPI
PhPrintTimeSpan(
__out_ecount(PH_TIMESPAN_STR_LEN_1) PWSTR Destination,
__in ULONG64 Ticks,
__in_opt ULONG Mode
@@ -2149,25 +2402,37 @@ PPH_STRING PhaSubstring(
// basesupx
VOID FASTCALL PhxfAddInt32(
PHLIBAPI
VOID
FASTCALL
PhxfAddInt32(
__inout __needsAlign(16) PLONG A,
__in __needsAlign(16) PLONG B,
__in ULONG Count
);
VOID FASTCALL PhxfAddInt32U(
PHLIBAPI
VOID
FASTCALL
PhxfAddInt32U(
__inout PLONG A,
__in PLONG B,
__in ULONG Count
);
VOID FASTCALL PhxfDivideSingleU(
PHLIBAPI
VOID
FASTCALL
PhxfDivideSingleU(
__inout PFLOAT A,
__in PFLOAT B,
__in ULONG Count
);
VOID FASTCALL PhxfDivideSingle2U(
PHLIBAPI
VOID
FASTCALL
PhxfDivideSingle2U(
__inout PFLOAT A,
__in FLOAT B,
__in ULONG Count
@@ -2175,11 +2440,17 @@ VOID FASTCALL PhxfDivideSingle2U(
// error
NTSTATUS PhDosErrorToNtStatus(
PHLIBAPI
NTSTATUS
NTAPI
PhDosErrorToNtStatus(
__in ULONG DosError
);
BOOLEAN PhNtStatusFileNotFound(
PHLIBAPI
BOOLEAN
NTAPI
PhNtStatusFileNotFound(
__in NTSTATUS Status
);
@@ -2209,22 +2480,34 @@ typedef struct _PH_BINARY_TREE
#define PH_BINARY_TREE_INIT(CompareFunction) { { NULL, NULL, NULL }, 0, CompareFunction }
VOID PhInitializeBinaryTree(
PHLIBAPI
VOID
NTAPI
PhInitializeBinaryTree(
__out PPH_BINARY_TREE Tree,
__in PPH_BINARY_TREE_COMPARE_FUNCTION CompareFunction
);
PPH_BINARY_LINKS PhBinaryTreeAdd(
PHLIBAPI
PPH_BINARY_LINKS
NTAPI
PhBinaryTreeAdd(
__inout PPH_BINARY_TREE Tree,
__out PPH_BINARY_LINKS Subject
);
VOID PhBinaryTreeRemove(
PHLIBAPI
VOID
NTAPI
PhBinaryTreeRemove(
__inout PPH_BINARY_TREE Tree,
__inout PPH_BINARY_LINKS Subject
);
PPH_BINARY_LINKS PhBinaryTreeSearch(
PHLIBAPI
PPH_BINARY_LINKS
NTAPI
PhBinaryTreeSearch(
__in PPH_BINARY_TREE Tree,
__in PPH_BINARY_LINKS Subject
);
@@ -2254,22 +2537,34 @@ typedef struct _PH_AVL_TREE
#define PH_AVL_TREE_INIT(CompareFunction) { { NULL, NULL, NULL, 0 }, 0, CompareFunction }
VOID PhInitializeAvlTree(
PHLIBAPI
VOID
NTAPI
PhInitializeAvlTree(
__out PPH_AVL_TREE Tree,
__in PPH_AVL_TREE_COMPARE_FUNCTION CompareFunction
);
PPH_AVL_LINKS PhAvlTreeAdd(
PHLIBAPI
PPH_AVL_LINKS
NTAPI
PhAvlTreeAdd(
__inout PPH_AVL_TREE Tree,
__out PPH_AVL_LINKS Subject
);
VOID PhAvlTreeRemove(
PHLIBAPI
VOID
NTAPI
PhAvlTreeRemove(
__inout PPH_AVL_TREE Tree,
__inout PPH_AVL_LINKS Subject
);
PPH_AVL_LINKS PhAvlTreeSearch(
PHLIBAPI
PPH_AVL_LINKS
NTAPI
PhAvlTreeSearch(
__in PPH_AVL_TREE Tree,
__in PPH_AVL_LINKS Subject
);
@@ -2436,24 +2731,36 @@ typedef struct _PH_WORK_QUEUE_ITEM
VOID PhWorkQueueInitialization();
VOID PhInitializeWorkQueue(
PHLIBAPI
VOID
NTAPI
PhInitializeWorkQueue(
__out PPH_WORK_QUEUE WorkQueue,
__in ULONG MinimumThreads,
__in ULONG MaximumThreads,
__in ULONG NoWorkTimeout
);
VOID PhDeleteWorkQueue(
PHLIBAPI
VOID
NTAPI
PhDeleteWorkQueue(
__inout PPH_WORK_QUEUE WorkQueue
);
VOID PhQueueWorkQueueItem(
PHLIBAPI
VOID
NTAPI
PhQueueWorkQueueItem(
__inout PPH_WORK_QUEUE WorkQueue,
__in PTHREAD_START_ROUTINE Function,
__in PVOID Context
);
VOID PhQueueGlobalWorkQueueItem(
PHLIBAPI
VOID
NTAPI
PhQueueGlobalWorkQueueItem(
__in PTHREAD_START_ROUTINE Function,
__in PVOID Context
);
+47
View File
@@ -207,6 +207,7 @@ FORCEINLINE LRESULT PhReflectMessage(
return 0;
}
PHLIBAPI
HWND PhCreateListViewControl(
__in HWND ParentHandle,
__in INT_PTR Id
@@ -234,6 +235,7 @@ FORCEINLINE VOID PhSetListViewStyle(
);
}
PHLIBAPI
INT PhAddListViewColumn(
__in HWND ListViewHandle,
__in INT Index,
@@ -244,6 +246,7 @@ INT PhAddListViewColumn(
__in PWSTR Text
);
PHLIBAPI
INT PhAddListViewItem(
__in HWND ListViewHandle,
__in INT Index,
@@ -251,47 +254,55 @@ INT PhAddListViewItem(
__in PVOID Param
);
PHLIBAPI
INT PhFindListViewItemByFlags(
__in HWND ListViewHandle,
__in INT StartIndex,
__in ULONG Flags
);
PHLIBAPI
INT PhFindListViewItemByParam(
__in HWND ListViewHandle,
__in INT StartIndex,
__in PVOID Param
);
PHLIBAPI
LOGICAL PhGetListViewItemImageIndex(
__in HWND ListViewHandle,
__in INT Index,
__out PINT ImageIndex
);
PHLIBAPI
LOGICAL PhGetListViewItemParam(
__in HWND ListViewHandle,
__in INT Index,
__out PPVOID Param
);
PHLIBAPI
VOID PhRemoveListViewItem(
__in HWND ListViewHandle,
__in INT Index
);
PHLIBAPI
VOID PhSetListViewItemImageIndex(
__in HWND ListViewHandle,
__in INT Index,
__in INT ImageIndex
);
PHLIBAPI
VOID PhSetListViewItemStateImage(
__in HWND ListViewHandle,
__in INT Index,
__in INT StateImage
);
PHLIBAPI
VOID PhSetListViewSubItem(
__in HWND ListViewHandle,
__in INT Index,
@@ -299,19 +310,23 @@ VOID PhSetListViewSubItem(
__in PWSTR Text
);
PHLIBAPI
BOOLEAN PhLoadListViewColumnSettings(
__in HWND ListViewHandle,
__in PPH_STRING Settings
);
PHLIBAPI
PPH_STRING PhSaveListViewColumnSettings(
__in HWND ListViewHandle
);
PHLIBAPI
HWND PhCreateTabControl(
__in HWND ParentHandle
);
PHLIBAPI
INT PhAddTabControlTab(
__in HWND TabControlHandle,
__in INT Index,
@@ -321,26 +336,31 @@ INT PhAddTabControlTab(
#define PHA_GET_DLGITEM_TEXT(hwndDlg, id) \
((PPH_STRING)PHA_DEREFERENCE(PhGetWindowText(GetDlgItem(hwndDlg, id))))
PHLIBAPI
PPH_STRING PhGetWindowText(
__in HWND hwnd
);
PHLIBAPI
VOID PhAddComboBoxStrings(
__in HWND hWnd,
__in PWSTR *Strings,
__in ULONG NumberOfStrings
);
PHLIBAPI
PPH_STRING PhGetComboBoxString(
__in HWND hwnd,
__in INT Index
);
PHLIBAPI
PPH_STRING PhGetListBoxString(
__in HWND hwnd,
__in INT Index
);
PHLIBAPI
VOID PhShowContextMenu(
__in HWND hwnd,
__in HWND subHwnd,
@@ -348,6 +368,7 @@ VOID PhShowContextMenu(
__in POINT point
);
PHLIBAPI
UINT PhShowContextMenu2(
__in HWND hwnd,
__in HWND subHwnd,
@@ -355,6 +376,7 @@ UINT PhShowContextMenu2(
__in POINT point
);
PHLIBAPI
VOID PhSetMenuItemBitmap(
__in HMENU Menu,
__in ULONG Item,
@@ -362,39 +384,46 @@ VOID PhSetMenuItemBitmap(
__in HBITMAP Bitmap
);
PHLIBAPI
VOID PhSetRadioCheckMenuItem(
__in HMENU Menu,
__in ULONG Id,
__in BOOLEAN RadioCheck
);
PHLIBAPI
VOID PhEnableMenuItem(
__in HMENU Menu,
__in ULONG Id,
__in BOOLEAN Enable
);
PHLIBAPI
VOID PhEnableAllMenuItems(
__in HMENU Menu,
__in BOOLEAN Enable
);
PHLIBAPI
VOID PhSetStateAllListViewItems(
__in HWND hWnd,
__in ULONG State,
__in ULONG Mask
);
PHLIBAPI
PVOID PhGetSelectedListViewItemParam(
__in HWND hWnd
);
PHLIBAPI
VOID PhGetSelectedListViewItemParams(
__in HWND hWnd,
__out PVOID **Items,
__out PULONG NumberOfItems
);
PHLIBAPI
VOID PhSetImageListBitmap(
__in HIMAGELIST ImageList,
__in INT Index,
@@ -429,11 +458,13 @@ VOID PhImageListWrapperRemove(
__in INT Index
);
PHLIBAPI
VOID PhSetClipboardString(
__in HWND hWnd,
__in PPH_STRINGREF String
);
PHLIBAPI
VOID PhSetClipboardStringEx(
__in HWND hWnd,
__in PWSTR Buffer,
@@ -475,15 +506,18 @@ typedef struct _PH_LAYOUT_MANAGER
ULONG LayoutNumber;
} PH_LAYOUT_MANAGER, *PPH_LAYOUT_MANAGER;
PHLIBAPI
VOID PhInitializeLayoutManager(
__out PPH_LAYOUT_MANAGER Manager,
__in HWND RootWindowHandle
);
PHLIBAPI
VOID PhDeleteLayoutManager(
__inout PPH_LAYOUT_MANAGER Manager
);
PHLIBAPI
PPH_LAYOUT_ITEM PhAddLayoutItem(
__inout PPH_LAYOUT_MANAGER Manager,
__in HWND Handle,
@@ -491,6 +525,7 @@ PPH_LAYOUT_ITEM PhAddLayoutItem(
__in ULONG Anchor
);
PHLIBAPI
PPH_LAYOUT_ITEM PhAddLayoutItemEx(
__inout PPH_LAYOUT_MANAGER Manager,
__in HWND Handle,
@@ -499,6 +534,7 @@ PPH_LAYOUT_ITEM PhAddLayoutItemEx(
__in RECT Margin
);
PHLIBAPI
VOID PhLayoutManagerLayout(
__inout PPH_LAYOUT_MANAGER Manager
);
@@ -549,6 +585,7 @@ FORCEINLINE VOID PhCopyControlRectangle(
// icotobmp
PHLIBAPI
HBITMAP PhIconToBitmap(
__in HICON Icon,
__in ULONG Width,
@@ -617,10 +654,12 @@ typedef HFONT (NTAPI *PPH_EXTLV_GET_ITEM_FONT)(
__in PVOID Context
);
PHLIBAPI
VOID PhSetExtendedListView(
__in HWND hWnd
);
PHLIBAPI
VOID PhSetHeaderSortIcon(
__in HWND hwnd,
__in INT Index,
@@ -787,6 +826,7 @@ typedef struct _PH_ACCESS_ENTRY
VOID PhSecurityEditorInitialization();
PHLIBAPI
HPROPSHEETPAGE PhCreateSecurityPage(
__in PWSTR ObjectName,
__in PPH_GET_OBJECT_SECURITY GetObjectSecurity,
@@ -796,6 +836,7 @@ HPROPSHEETPAGE PhCreateSecurityPage(
__in ULONG NumberOfAccessEntries
);
PHLIBAPI
VOID PhEditSecurity(
__in HWND hWnd,
__in PWSTR ObjectName,
@@ -869,18 +910,21 @@ FORCEINLINE ACCESS_MASK PhGetAccessForSetSecurity(
return access;
}
PHLIBAPI
__callback NTSTATUS PhStdGetObjectSecurity(
__out PSECURITY_DESCRIPTOR *SecurityDescriptor,
__in SECURITY_INFORMATION SecurityInformation,
__in PVOID Context
);
PHLIBAPI
__callback NTSTATUS PhStdSetObjectSecurity(
__in PSECURITY_DESCRIPTOR SecurityDescriptor,
__in SECURITY_INFORMATION SecurityInformation,
__in PVOID Context
);
PHLIBAPI
NTSTATUS PhGetSeObjectSecurity(
__in HANDLE Handle,
__in SE_OBJECT_TYPE ObjectType,
@@ -888,6 +932,7 @@ NTSTATUS PhGetSeObjectSecurity(
__out PSECURITY_DESCRIPTOR *SecurityDescriptor
);
PHLIBAPI
NTSTATUS PhSetSeObjectSecurity(
__in HANDLE Handle,
__in SE_OBJECT_TYPE ObjectType,
@@ -897,12 +942,14 @@ NTSTATUS PhSetSeObjectSecurity(
// secdata
PHLIBAPI
BOOLEAN PhGetAccessEntries(
__in PWSTR Type,
__out PPH_ACCESS_ENTRY *AccessEntries,
__out PULONG NumberOfAccessEntries
);
PHLIBAPI
PPH_STRING PhGetAccessString(
__in ACCESS_MASK Access,
__in PPH_ACCESS_ENTRY AccessEntries,
+44 -11
View File
@@ -61,55 +61,88 @@ FORCEINLINE VOID PhInitializeQueuedLock(
QueuedLock->Value = 0;
}
VOID FASTCALL PhfAcquireQueuedLockExclusive(
PHLIBAPI
VOID
FASTCALL
PhfAcquireQueuedLockExclusive(
__inout PPH_QUEUED_LOCK QueuedLock
);
VOID FASTCALL PhfAcquireQueuedLockShared(
PHLIBAPI
VOID
FASTCALL
PhfAcquireQueuedLockShared(
__inout PPH_QUEUED_LOCK QueuedLock
);
VOID FASTCALL PhfReleaseQueuedLockExclusive(
PHLIBAPI
VOID
FASTCALL
PhfReleaseQueuedLockExclusive(
__inout PPH_QUEUED_LOCK QueuedLock
);
VOID FASTCALL PhfReleaseQueuedLockShared(
PHLIBAPI
VOID
FASTCALL
PhfReleaseQueuedLockShared(
__inout PPH_QUEUED_LOCK QueuedLock
);
VOID FASTCALL PhfTryWakeQueuedLock(
PHLIBAPI
VOID
FASTCALL
PhfTryWakeQueuedLock(
__inout PPH_QUEUED_LOCK QueuedLock
);
#define PhPulseCondition PhfPulseCondition
VOID FASTCALL PhfPulseCondition(
PHLIBAPI
VOID
FASTCALL
PhfPulseCondition(
__inout PPH_QUEUED_LOCK Condition
);
#define PhPulseAllCondition PhfPulseAllCondition
VOID FASTCALL PhfPulseAllCondition(
PHLIBAPI
VOID
FASTCALL
PhfPulseAllCondition(
__inout PPH_QUEUED_LOCK Condition
);
#define PhWaitForCondition PhfWaitForCondition
VOID FASTCALL PhfWaitForCondition(
PHLIBAPI
VOID
FASTCALL
PhfWaitForCondition(
__inout PPH_QUEUED_LOCK Condition,
__inout_opt PPH_QUEUED_LOCK Lock,
__in_opt PLARGE_INTEGER Timeout
);
#define PhQueueWakeEvent PhfQueueWakeEvent
VOID FASTCALL PhfQueueWakeEvent(
PHLIBAPI
VOID
FASTCALL
PhfQueueWakeEvent(
__inout PPH_QUEUED_LOCK WakeEvent,
__out PPH_QUEUED_WAIT_BLOCK WaitBlock
);
VOID FASTCALL PhfSetWakeEvent(
PHLIBAPI
VOID
FASTCALL
PhfSetWakeEvent(
__inout PPH_QUEUED_LOCK WakeEvent
);
#define PhWaitForWakeEvent PhfWaitForWakeEvent
NTSTATUS FASTCALL PhfWaitForWakeEvent(
PHLIBAPI
NTSTATUS
FASTCALL
PhfWaitForWakeEvent(
__inout PPH_QUEUED_LOCK WakeEvent,
__inout PPH_QUEUED_WAIT_BLOCK WaitBlock,
__in_opt PLARGE_INTEGER Timeout
+56 -13
View File
@@ -120,39 +120,65 @@ NTSTATUS PhCreateObjectTypeEx(
__in_opt PPH_OBJECT_TYPE_PARAMETERS Parameters
);
VOID PhDereferenceObject(
PHLIBAPI
VOID
NTAPI
PhDereferenceObject(
__in PVOID Object
);
BOOLEAN PhDereferenceObjectDeferDelete(
PHLIBAPI
BOOLEAN
NTAPI
PhDereferenceObjectDeferDelete(
__in PVOID Object
);
__mayRaise LONG PhDereferenceObjectEx(
__mayRaise
PHLIBAPI
LONG
NTAPI
PhDereferenceObjectEx(
__in PVOID Object,
__in LONG RefCount,
__in BOOLEAN DeferDelete
);
PPH_OBJECT_TYPE PhGetObjectType(
PHLIBAPI
PPH_OBJECT_TYPE
NTAPI
PhGetObjectType(
__in PVOID Object
);
VOID PhGetObjectTypeInformation(
PHLIBAPI
VOID
NTAPI
PhGetObjectTypeInformation(
__in PPH_OBJECT_TYPE ObjectType,
__out PPH_OBJECT_TYPE_INFORMATION Information
);
VOID PhReferenceObject(
PHLIBAPI
VOID
NTAPI
PhReferenceObject(
__in PVOID Object
);
__mayRaise LONG PhReferenceObjectEx(
__mayRaise
PHLIBAPI
LONG
NTAPI
PhReferenceObjectEx(
__in PVOID Object,
__in LONG RefCount
);
BOOLEAN PhReferenceObjectSafe(
PHLIBAPI
BOOLEAN
NTAPI
PhReferenceObjectSafe(
__in PVOID Object
);
@@ -198,7 +224,10 @@ FORCEINLINE VOID PhSwapReference2(
if (oldObject) PhDereferenceObject(oldObject);
}
NTSTATUS PhCreateAlloc(
PHLIBAPI
NTSTATUS
NTAPI
PhCreateAlloc(
__out PVOID *Alloc,
__in SIZE_T Size
);
@@ -230,19 +259,33 @@ typedef struct _PH_AUTO_POOL
struct _PH_AUTO_POOL *NextPool;
} PH_AUTO_POOL, *PPH_AUTO_POOL;
VOID PhInitializeAutoPool(
PHLIBAPI
VOID
NTAPI
PhInitializeAutoPool(
__out PPH_AUTO_POOL AutoPool
);
__mayRaise VOID PhDeleteAutoPool(
__mayRaise
PHLIBAPI
VOID
NTAPI
PhDeleteAutoPool(
__inout PPH_AUTO_POOL AutoPool
);
__mayRaise VOID PhaDereferenceObject(
__mayRaise
PHLIBAPI
VOID
NTAPI
PhaDereferenceObject(
__in PVOID Object
);
VOID PhDrainAutoPool(
PHLIBAPI
VOID
NTAPI
PhDrainAutoPool(
__in PPH_AUTO_POOL AutoPool
);