libwinpr-handle: add definitions for objects
authorMarc-André Moreau <marcandre.moreau@gmail.com>
Tue, 18 Sep 2012 04:10:14 +0000 (00:10 -0400)
committerMarc-André Moreau <marcandre.moreau@gmail.com>
Tue, 18 Sep 2012 04:10:14 +0000 (00:10 -0400)
winpr/include/winpr/handle.h
winpr/include/winpr/thread.h
winpr/libwinpr/handle/handle.c
winpr/libwinpr/thread/thread.c

index 284677f..b54d6e1 100644 (file)
 #include <string.h>
 #include <winpr/winpr.h>
 #include <winpr/wtypes.h>
+#include <winpr/security.h>
+
+#define OBJ_INHERIT                    0x00000002
+#define OBJ_PERMANENT                  0x00000010
+#define OBJ_EXCLUSIVE                  0x00000020
+#define OBJ_CASE_INSENSITIVE           0x00000040
+#define OBJ_OPENIF                     0x00000080
+#define OBJ_OPENLINK                   0x00000100
+#define OBJ_KERNEL_HANDLE              0x00000200
+#define OBJ_FORCE_ACCESS_CHECK         0x00000400
+#define OBJ_VALID_ATTRIBUTES           0x000007F2
+
+typedef struct _OBJECT_ATTRIBUTES
+{
+       ULONG Length;
+       HANDLE RootDirectory;
+       PUNICODE_STRING ObjectName;
+       ULONG Attributes;
+       PVOID SecurityDescriptor;
+       PVOID SecurityQualityOfService;
+}  OBJECT_ATTRIBUTES, *POBJECT_ATTRIBUTES;
+
+#define InitializeObjectAttributes(p, n, a, r, s) { \
+       (p)->Length = sizeof(OBJECT_ATTRIBUTES); \
+       (p)->RootDirectory = (r); \
+       (p)->Attributes = (a); \
+       (p)->ObjectName = (n); \
+       (p)->SecurityDescriptor = (s); \
+       (p)->SecurityQualityOfService = NULL; \
+}
 
 #ifndef _WIN32
 
index d9e7d67..1957c83 100644 (file)
@@ -107,6 +107,9 @@ WINPR_API BOOL CreateProcessAsUserW(HANDLE hToken, LPCWSTR lpApplicationName, LP
 #define CreateProcessAsUser    CreateProcessAsUserA
 #endif
 
+WINPR_API HANDLE CreateRemoteThread(HANDLE hProcess, LPSECURITY_ATTRIBUTES lpThreadAttributes, SIZE_T dwStackSize,
+               LPTHREAD_START_ROUTINE lpStartAddress,LPVOID lpParameter,DWORD dwCreationFlags,LPDWORD lpThreadId);
+
 WINPR_API HANDLE CreateThread(LPSECURITY_ATTRIBUTES lpThreadAttributes, SIZE_T dwStackSize,
        LPTHREAD_START_ROUTINE lpStartAddress, LPVOID lpParameter, DWORD dwCreationFlags, LPDWORD lpThreadId);
 
index 6f9f9c7..0522049 100644 (file)
 
 #ifndef _WIN32
 
+typedef struct _HANDLE_TABLE_ENTRY
+{
+       PVOID Object;
+       ULONG ObAttributes;
+       ULONG Value;
+} HANDLE_TABLE_ENTRY, *PHANDLE_TABLE_ENTRY;
+
+typedef struct _HANDLE_TABLE
+{
+       LONG Count;
+       PHANDLE_TABLE_ENTRY* Handles;
+} HANDLE_TABLE, *PHANDLE_TABLE;
+
 #if defined __APPLE__
 #include <pthread.h>
 #include <semaphore.h>
index c0d6319..a45e22b 100644 (file)
@@ -125,6 +125,12 @@ BOOL CreateProcessAsUserW(HANDLE hToken, LPCWSTR lpApplicationName, LPWSTR lpCom
        return TRUE;
 }
 
+HANDLE CreateRemoteThread(HANDLE hProcess, LPSECURITY_ATTRIBUTES lpThreadAttributes, SIZE_T dwStackSize,
+               LPTHREAD_START_ROUTINE lpStartAddress,LPVOID lpParameter,DWORD dwCreationFlags,LPDWORD lpThreadId)
+{
+       return NULL;
+}
+
 HANDLE CreateThread(LPSECURITY_ATTRIBUTES lpThreadAttributes, SIZE_T dwStackSize,
        LPTHREAD_START_ROUTINE lpStartAddress, LPVOID lpParameter, DWORD dwCreationFlags, LPDWORD lpThreadId)
 {
@@ -170,6 +176,11 @@ DWORD GetCurrentThreadId(VOID)
        return 0;
 }
 
+DWORD GetProcessId(HANDLE Process)
+{
+       return 0;
+}
+
 DWORD ResumeThread(HANDLE hThread)
 {
        return 0;