| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 | /* * winsecur.h: some miscellaneous security-related helper functions, * defined in winsecur.c, that use the advapi32 library. Also * centralises the machinery for dynamically loading that library. */#if !defined NO_SECURITY#include <aclapi.h>#ifndef WINSECUR_GLOBAL#define WINSECUR_GLOBAL extern#endif/* * Functions loaded from advapi32.dll. */DECL_WINDOWS_FUNCTION(WINSECUR_GLOBAL, BOOL, OpenProcessToken,		      (HANDLE, DWORD, PHANDLE));DECL_WINDOWS_FUNCTION(WINSECUR_GLOBAL, BOOL, GetTokenInformation,		      (HANDLE, TOKEN_INFORMATION_CLASS,                       LPVOID, DWORD, PDWORD));DECL_WINDOWS_FUNCTION(WINSECUR_GLOBAL, BOOL, InitializeSecurityDescriptor,		      (PSECURITY_DESCRIPTOR, DWORD));DECL_WINDOWS_FUNCTION(WINSECUR_GLOBAL, BOOL, SetSecurityDescriptorOwner,		      (PSECURITY_DESCRIPTOR, PSID, BOOL));DECL_WINDOWS_FUNCTION(WINSECUR_GLOBAL, DWORD, GetSecurityInfo,		      (HANDLE, SE_OBJECT_TYPE, SECURITY_INFORMATION,		       PSID *, PSID *, PACL *, PACL *,		       PSECURITY_DESCRIPTOR *));DECL_WINDOWS_FUNCTION(WINSECUR_GLOBAL, DWORD, SetSecurityInfo,		      (HANDLE, SE_OBJECT_TYPE, SECURITY_INFORMATION,		       PSID, PSID, PACL, PACL));DECL_WINDOWS_FUNCTION(WINSECUR_GLOBAL, DWORD, SetEntriesInAclA,		      (ULONG, PEXPLICIT_ACCESS, PACL, PACL *));int got_advapi(void);/* * Find the SID describing the current user. The return value (if not * NULL for some error-related reason) is smalloced. */PSID get_user_sid(void);/* * Construct a PSECURITY_DESCRIPTOR of the type used for named pipe * servers, i.e. allowing access only to the current user id and also * only local (i.e. not over SMB) connections. * * If this function returns TRUE, then 'psd' and 'acl' will have been * filled in with memory allocated using LocalAlloc (and hence must be * freed later using LocalFree). If it returns FALSE, then instead * 'error' has been filled with a dynamically allocated error message. */int make_private_security_descriptor(DWORD permissions,                                     PSECURITY_DESCRIPTOR *psd,                                     PACL *acl,                                     char **error);#endif
 |