windows-nt/Source/XPSP1/NT/public/internal/windows/inc/aclapip.h
2020-09-26 16:20:57 +08:00

388 lines
11 KiB
C

/*++ BUILD Version: 0001 // Increment this if a change has global effects
Copyright (c) 1993-1999, Microsoft Corporation
Module Name:
aclapip.h
Abstract:
Private
Structure/constant definitions and typedefines for the Win32 Access
Control APIs
--*/
#ifndef __ACCESS_CONTROL_API_P__
#define __ACCESS_CONTROL_API_P__
#ifdef __cplusplus
extern "C" {
#endif
#if(_WIN32_WINNT >= 0x0500)
WINADVAPI
DWORD
WINAPI
GetNamedSecurityInfoExA(
IN LPCSTR lpObject,
IN SE_OBJECT_TYPE ObjectType,
IN SECURITY_INFORMATION SecurityInfo,
IN LPCSTR lpProvider,
IN LPCSTR lpProperty,
OUT PACTRL_ACCESSA *ppAccessList,
OUT PACTRL_AUDITA *ppAuditList,
OUT LPSTR *lppOwner,
OUT LPSTR *lppGroup
);
WINADVAPI
DWORD
WINAPI
GetNamedSecurityInfoExW(
IN LPCWSTR lpObject,
IN SE_OBJECT_TYPE ObjectType,
IN SECURITY_INFORMATION SecurityInfo,
IN LPCWSTR lpProvider,
IN LPCWSTR lpProperty,
OUT PACTRL_ACCESSW *ppAccessList,
OUT PACTRL_AUDITW *ppAuditList,
OUT LPWSTR *lppOwner,
OUT LPWSTR *lppGroup
);
#ifdef UNICODE
#define GetNamedSecurityInfoEx GetNamedSecurityInfoExW
#else
#define GetNamedSecurityInfoEx GetNamedSecurityInfoExA
#endif // !UNICODE
WINADVAPI
DWORD
WINAPI
SetNamedSecurityInfoExA(
IN LPCSTR lpObject,
IN SE_OBJECT_TYPE ObjectType,
IN SECURITY_INFORMATION SecurityInfo,
IN LPCSTR lpProvider,
IN PACTRL_ACCESSA pAccessList,
IN PACTRL_AUDITA pAuditList,
IN LPSTR lpOwner,
IN LPSTR lpGroup,
IN PACTRL_OVERLAPPED pOverlapped
);
WINADVAPI
DWORD
WINAPI
SetNamedSecurityInfoExW(
IN LPCWSTR lpObject,
IN SE_OBJECT_TYPE ObjectType,
IN SECURITY_INFORMATION SecurityInfo,
IN LPCWSTR lpProvider,
IN PACTRL_ACCESSW pAccessList,
IN PACTRL_AUDITW pAuditList,
IN LPWSTR lpOwner,
IN LPWSTR lpGroup,
IN PACTRL_OVERLAPPED pOverlapped
);
#ifdef UNICODE
#define SetNamedSecurityInfoEx SetNamedSecurityInfoExW
#else
#define SetNamedSecurityInfoEx SetNamedSecurityInfoExA
#endif // !UNICODE
WINADVAPI
DWORD
WINAPI
GetSecurityInfoExA(
IN HANDLE hObject,
IN SE_OBJECT_TYPE ObjectType,
IN SECURITY_INFORMATION SecurityInfo,
IN LPCSTR lpProvider,
IN LPCSTR lpProperty,
OUT PACTRL_ACCESSA *ppAccessList,
OUT PACTRL_AUDITA *ppAuditList,
OUT LPSTR *lppOwner,
OUT LPSTR *lppGroup
);
WINADVAPI
DWORD
WINAPI
GetSecurityInfoExW(
IN HANDLE hObject,
IN SE_OBJECT_TYPE ObjectType,
IN SECURITY_INFORMATION SecurityInfo,
IN LPCWSTR lpProvider,
IN LPCWSTR lpProperty,
OUT PACTRL_ACCESSW *ppAccessList,
OUT PACTRL_AUDITW *ppAuditList,
OUT LPWSTR *lppOwner,
OUT LPWSTR *lppGroup
);
#ifdef UNICODE
#define GetSecurityInfoEx GetSecurityInfoExW
#else
#define GetSecurityInfoEx GetSecurityInfoExA
#endif // !UNICODE
WINADVAPI
DWORD
WINAPI
SetSecurityInfoExA(
IN HANDLE hObject,
IN SE_OBJECT_TYPE ObjectType,
IN SECURITY_INFORMATION SecurityInfo,
IN LPCSTR lpProvider,
IN PACTRL_ACCESSA pAccessList,
IN PACTRL_AUDITA pAuditList,
IN LPSTR lpOwner,
IN LPSTR lpGroup,
OUT PACTRL_OVERLAPPED pOverlapped
);
WINADVAPI
DWORD
WINAPI
SetSecurityInfoExW(
IN HANDLE hObject,
IN SE_OBJECT_TYPE ObjectType,
IN SECURITY_INFORMATION SecurityInfo,
IN LPCWSTR lpProvider,
IN PACTRL_ACCESSW pAccessList,
IN PACTRL_AUDITW pAuditList,
IN LPWSTR lpOwner,
IN LPWSTR lpGroup,
OUT PACTRL_OVERLAPPED pOverlapped
);
#ifdef UNICODE
#define SetSecurityInfoEx SetSecurityInfoExW
#else
#define SetSecurityInfoEx SetSecurityInfoExA
#endif // !UNICODE
WINADVAPI
DWORD
WINAPI
ConvertAccessToSecurityDescriptorA(
IN PACTRL_ACCESSA pAccessList,
IN PACTRL_AUDITA pAuditList,
IN LPCSTR lpOwner,
IN LPCSTR lpGroup,
OUT PSECURITY_DESCRIPTOR *ppSecDescriptor
);
WINADVAPI
DWORD
WINAPI
ConvertAccessToSecurityDescriptorW(
IN PACTRL_ACCESSW pAccessList,
IN PACTRL_AUDITW pAuditList,
IN LPCWSTR lpOwner,
IN LPCWSTR lpGroup,
OUT PSECURITY_DESCRIPTOR *ppSecDescriptor
);
#ifdef UNICODE
#define ConvertAccessToSecurityDescriptor ConvertAccessToSecurityDescriptorW
#else
#define ConvertAccessToSecurityDescriptor ConvertAccessToSecurityDescriptorA
#endif // !UNICODE
WINADVAPI
DWORD
WINAPI
ConvertSecurityDescriptorToAccessA(
IN HANDLE hObject,
IN SE_OBJECT_TYPE ObjectType,
IN PSECURITY_DESCRIPTOR pSecDescriptor,
OUT PACTRL_ACCESSA *ppAccessList,
OUT PACTRL_AUDITA *ppAuditList,
OUT LPSTR *lppOwner,
OUT LPSTR *lppGroup
);
WINADVAPI
DWORD
WINAPI
ConvertSecurityDescriptorToAccessW(
IN HANDLE hObject,
IN SE_OBJECT_TYPE ObjectType,
IN PSECURITY_DESCRIPTOR pSecDescriptor,
OUT PACTRL_ACCESSW *ppAccessList,
OUT PACTRL_AUDITW *ppAuditList,
OUT LPWSTR *lppOwner,
OUT LPWSTR *lppGroup
);
#ifdef UNICODE
#define ConvertSecurityDescriptorToAccess ConvertSecurityDescriptorToAccessW
#else
#define ConvertSecurityDescriptorToAccess ConvertSecurityDescriptorToAccessA
#endif // !UNICODE
WINADVAPI
DWORD
WINAPI
ConvertSecurityDescriptorToAccessNamedA(
IN LPCSTR lpObject,
IN SE_OBJECT_TYPE ObjectType,
IN PSECURITY_DESCRIPTOR pSecDescriptor,
OUT PACTRL_ACCESSA *ppAccessList,
OUT PACTRL_AUDITA *ppAuditList,
OUT LPSTR *lppOwner,
OUT LPSTR *lppGroup
);
WINADVAPI
DWORD
WINAPI
ConvertSecurityDescriptorToAccessNamedW(
IN LPCWSTR lpObject,
IN SE_OBJECT_TYPE ObjectType,
IN PSECURITY_DESCRIPTOR pSecDescriptor,
OUT PACTRL_ACCESSW *ppAccessList,
OUT PACTRL_AUDITW *ppAuditList,
OUT LPWSTR *lppOwner,
OUT LPWSTR *lppGroup
);
#ifdef UNICODE
#define ConvertSecurityDescriptorToAccessNamed ConvertSecurityDescriptorToAccessNamedW
#else
#define ConvertSecurityDescriptorToAccessNamed ConvertSecurityDescriptorToAccessNamedA
#endif // !UNICODE
WINADVAPI
DWORD
WINAPI
SetEntriesInAccessListA(
IN ULONG cEntries,
IN PACTRL_ACCESS_ENTRYA pAccessEntryList,
IN ACCESS_MODE AccessMode,
IN LPCSTR lpProperty,
IN PACTRL_ACCESSA pOldList,
OUT PACTRL_ACCESSA *ppNewList
);
WINADVAPI
DWORD
WINAPI
SetEntriesInAccessListW(
IN ULONG cEntries,
IN PACTRL_ACCESS_ENTRYW pAccessEntryList,
IN ACCESS_MODE AccessMode,
IN LPCWSTR lpProperty,
IN PACTRL_ACCESSW pOldList,
OUT PACTRL_ACCESSW *ppNewList
);
#ifdef UNICODE
#define SetEntriesInAccessList SetEntriesInAccessListW
#else
#define SetEntriesInAccessList SetEntriesInAccessListA
#endif // !UNICODE
WINADVAPI
DWORD
WINAPI
SetEntriesInAuditListA(
IN ULONG cEntries,
IN PACTRL_ACCESS_ENTRYA pAccessEntryList,
IN ACCESS_MODE AccessMode,
IN LPCSTR lpProperty,
IN PACTRL_AUDITA pOldList,
OUT PACTRL_AUDITA *ppNewList
);
WINADVAPI
DWORD
WINAPI
SetEntriesInAuditListW(
IN ULONG cEntries,
IN PACTRL_ACCESS_ENTRYW pAccessEntryList,
IN ACCESS_MODE AccessMode,
IN LPCWSTR lpProperty,
IN PACTRL_AUDITW pOldList,
OUT PACTRL_AUDITW *ppNewList
);
#ifdef UNICODE
#define SetEntriesInAuditList SetEntriesInAuditListW
#else
#define SetEntriesInAuditList SetEntriesInAuditListA
#endif // !UNICODE
WINADVAPI
DWORD
WINAPI
TrusteeAccessToObjectA(
IN LPCSTR lpObject,
IN SE_OBJECT_TYPE ObjectType,
IN LPCSTR lpProvider,
IN PTRUSTEE_A pTrustee,
IN ULONG cEntries,
IN OUT PTRUSTEE_ACCESSA pTrusteeAccess
);
WINADVAPI
DWORD
WINAPI
TrusteeAccessToObjectW(
IN LPCWSTR lpObject,
IN SE_OBJECT_TYPE ObjectType,
IN LPCWSTR lpProvider,
IN PTRUSTEE_W pTrustee,
IN ULONG cEntries,
IN OUT PTRUSTEE_ACCESSW pTrusteeAccess
);
#ifdef UNICODE
#define TrusteeAccessToObject TrusteeAccessToObjectW
#else
#define TrusteeAccessToObject TrusteeAccessToObjectA
#endif // !UNICODE
WINADVAPI
DWORD
WINAPI
GetOverlappedAccessResults(
IN PACTRL_OVERLAPPED pOverlapped,
IN BOOL fWaitForCompletion,
OUT PDWORD pResult,
OUT PULONG pcItemsProcessed OPTIONAL
);
WINADVAPI
DWORD
WINAPI
CancelOverlappedAccess(
IN PACTRL_OVERLAPPED pOverlapped
);
WINADVAPI
DWORD
WINAPI
GetAccessPermissionsForObjectA(
IN LPCSTR lpObject,
IN SE_OBJECT_TYPE ObjectType,
IN LPCSTR lpObjType,
IN LPCSTR lpProvider,
OUT PULONG pcEntries,
OUT PACTRL_ACCESS_INFOA *ppAccessInfoList,
OUT PULONG pcRights,
OUT PACTRL_CONTROL_INFOA *ppRightsList,
OUT PULONG pfAccessFlags
);
WINADVAPI
DWORD
WINAPI
GetAccessPermissionsForObjectW(
IN LPCWSTR lpObject,
IN SE_OBJECT_TYPE ObjectType,
IN LPCWSTR lpObjType,
IN LPCWSTR lpProvider,
OUT PULONG pcEntries,
OUT PACTRL_ACCESS_INFOW *ppAccessInfoList,
OUT PULONG pcRights,
OUT PACTRL_CONTROL_INFOW *ppRightsList,
OUT PULONG pfAccessFlags
);
#ifdef UNICODE
#define GetAccessPermissionsForObject GetAccessPermissionsForObjectW
#else
#define GetAccessPermissionsForObject GetAccessPermissionsForObjectA
#endif // !UNICODE
#endif /* _WIN32_WINNT >= 0x0500 */
#ifdef __cplusplus
}
#endif
#endif // endif __ACCESS_CONTROL_API_P__