Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

52 lines
2.6 KiB

//+----------------------------------------------------------------------------
//
// File: allowaccess.h
//
// Module: Common Code
//
// Synopsis: Implements the function AllowAccessToWorld.
//
// Copyright (c) 1999 Microsoft Corporation
//
// Author: quintinb Created 12/04/01
//
//+----------------------------------------------------------------------------
#include <aclapi.h>
typedef WINUSERAPI DWORD (WINAPI *pfnGetSidLengthRequiredSpec)(UCHAR);
typedef WINUSERAPI BOOL (WINAPI *pfnInitializeSidSpec)(PSID, PSID_IDENTIFIER_AUTHORITY, BYTE);
typedef WINUSERAPI PDWORD (WINAPI *pfnGetSidSubAuthoritySpec)(PSID, DWORD);
typedef WINUSERAPI BOOL (WINAPI *pfnInitializeAclSpec)(PACL, DWORD, DWORD);
typedef WINUSERAPI BOOL (WINAPI *pfnAddAccessAllowedAceExSpec)(PACL, DWORD, DWORD, DWORD, PSID);
typedef WINUSERAPI BOOL (WINAPI *pfnInitializeSecurityDescriptorSpec)(PSECURITY_DESCRIPTOR, DWORD);
typedef WINUSERAPI BOOL (WINAPI *pfnSetSecurityDescriptorDaclSpec)(PSECURITY_DESCRIPTOR, BOOL, PACL, BOOL);
typedef WINUSERAPI BOOL (WINAPI *pfnSetSecurityDescriptorOwnerSpec)(PSECURITY_DESCRIPTOR, PSID, BOOL);
typedef WINUSERAPI BOOL (WINAPI *pfnSetSecurityDescriptorGroupSpec)(PSECURITY_DESCRIPTOR, PSID, BOOL);
typedef WINUSERAPI BOOL (WINAPI *pfnGetSecurityDescriptorDaclSpec)(PSECURITY_DESCRIPTOR, LPBOOL, PACL*, LPBOOL);
typedef WINUSERAPI DWORD (WINAPI *pfnSetNamedSecurityInfoSpec)(TCHAR*, SE_OBJECT_TYPE, SECURITY_INFORMATION, PSID, PSID, PACL, PACL);
typedef struct _AdvapiLinkageStruct {
HMODULE hAdvapi32;
union {
struct {
pfnGetSidLengthRequiredSpec pfnGetSidLengthRequired;
pfnInitializeSidSpec pfnInitializeSid;
pfnGetSidSubAuthoritySpec pfnGetSidSubAuthority;
pfnInitializeAclSpec pfnInitializeAcl;
pfnAddAccessAllowedAceExSpec pfnAddAccessAllowedAceEx;
pfnInitializeSecurityDescriptorSpec pfnInitializeSecurityDescriptor;
pfnSetSecurityDescriptorDaclSpec pfnSetSecurityDescriptorDacl;
pfnSetSecurityDescriptorOwnerSpec pfnSetSecurityDescriptorOwner;
pfnSetSecurityDescriptorGroupSpec pfnSetSecurityDescriptorGroup;
pfnGetSecurityDescriptorDaclSpec pfnGetSecurityDescriptorDacl;
pfnSetNamedSecurityInfoSpec pfnSetNamedSecurityInfo;
};
void *apvPfnAdvapi32[12];
};
} AdvapiLinkageStruct;
BOOL LinkToAdavapi32(AdvapiLinkageStruct* pAdvapiLink);
void UnlinkFromAdvapi32(AdvapiLinkageStruct* pAdvapiLink);
DWORD AllocateSecurityDescriptorAllowAccessToWorld(PSECURITY_DESCRIPTOR *ppSd, AdvapiLinkageStruct* pAdvapiLink);
BOOL AllowAccessToWorld(LPTSTR pszDirOrFile);