FreeRDP
Loading...
Searching...
No Matches
handle.c
1
21#include <winpr/config.h>
22
23#include <winpr/handle.h>
24
25#ifndef _WIN32
26
27#include <pthread.h>
28
29#include "../synch/synch.h"
30#include "../thread/thread.h"
31#include "../pipe/pipe.h"
32#include "../comm/comm.h"
33#include "../security/security.h"
34
35#ifdef WINPR_HAVE_UNISTD_H
36#include <unistd.h>
37#endif
38
39#include <winpr/assert.h>
40
41#include "../handle/handle.h"
42
43BOOL CloseHandle(HANDLE hObject)
44{
45 ULONG Type = 0;
46 WINPR_HANDLE* Object = NULL;
47
48 if (!winpr_Handle_GetInfo(hObject, &Type, &Object))
49 return FALSE;
50
51 if (!Object)
52 return FALSE;
53
54 if (!Object->ops)
55 return FALSE;
56
57 if (Object->ops->CloseHandle)
58 return Object->ops->CloseHandle(hObject);
59
60 return FALSE;
61}
62
63BOOL DuplicateHandle(WINPR_ATTR_UNUSED HANDLE hSourceProcessHandle,
64 WINPR_ATTR_UNUSED HANDLE hSourceHandle,
65 WINPR_ATTR_UNUSED HANDLE hTargetProcessHandle,
66 WINPR_ATTR_UNUSED LPHANDLE lpTargetHandle,
67 WINPR_ATTR_UNUSED DWORD dwDesiredAccess, WINPR_ATTR_UNUSED BOOL bInheritHandle,
68 WINPR_ATTR_UNUSED DWORD dwOptions)
69{
70 *((ULONG_PTR*)lpTargetHandle) = (ULONG_PTR)hSourceHandle;
71 return TRUE;
72}
73
74BOOL GetHandleInformation(WINPR_ATTR_UNUSED HANDLE hObject, WINPR_ATTR_UNUSED LPDWORD lpdwFlags)
75{
76 WLog_ERR("TODO", "TODO: Implement");
77 return TRUE;
78}
79
80BOOL SetHandleInformation(WINPR_ATTR_UNUSED HANDLE hObject, WINPR_ATTR_UNUSED DWORD dwMask,
81 WINPR_ATTR_UNUSED DWORD dwFlags)
82{
83 WLog_ERR("TODO", "TODO: Implement");
84 return TRUE;
85}
86
87#endif