summaryrefslogtreecommitdiffstats
path: root/public/sdk/inc/provapi.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--public/sdk/inc/provapi.h248
1 files changed, 248 insertions, 0 deletions
diff --git a/public/sdk/inc/provapi.h b/public/sdk/inc/provapi.h
new file mode 100644
index 000000000..c8ead9651
--- /dev/null
+++ b/public/sdk/inc/provapi.h
@@ -0,0 +1,248 @@
+//+-------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1993 - 1994.
+//
+// File: provapi.h
+//
+// Contents: public provider independent access control header file
+//
+// History: 8-94 Created DaveMont
+//
+//--------------------------------------------------------------------
+#ifndef __PROVIDER_INDEPENDENT_ACCESS__
+#define __PROVIDER_INDEPENDENT_ACCESS__
+
+#include <windows.h>
+#include <accctrl.h>
+#define PRESUME_KEY PVOID
+
+//--------------------------------------------------------------------
+//
+// access request format
+//
+//--------------------------------------------------------------------
+typedef struct _PROV_ACCESS_REQUEST
+{
+ DWORD ulAccessRights;
+ LPTSTR TrusteeName;
+} PROV_ACCESS_REQUEST, *PPROV_ACCESS_REQUEST;
+
+//--------------------------------------------------------------------
+//
+// returned by GetExplicitAccessRights
+//
+//--------------------------------------------------------------------
+typedef struct _PROV_EXPLICIT_ACCESS
+{
+ DWORD ulAccessRights;
+ ACCESS_MODE ulAccessMode;
+ DWORD ulInheritance;
+ LPTSTR TrusteeName;
+} PROV_EXPLICIT_ACCESS, *PPROV_EXPLICIT_ACCESS;
+//--------------------------------------------------------------------
+//
+// Object type definition
+//
+//--------------------------------------------------------------------
+typedef enum _PROV_OBJECT_TYPE
+{
+ PROV_FILE_OBJECT = 1,
+ PROV_SERVICE,
+ PROV_PRINTER,
+ PROV_REGISTRY_KEY,
+ PROV_LMSHARE,
+ PROV_OLE_OBJECT,
+ PROV_PROVIDER_DEFINED
+} PROV_OBJECT_TYPE, *PPROV_OBJECT_TYPE;
+
+
+//+-------------------------------------------------------------------------
+#ifdef __cplusplus
+extern "C" {
+#endif
+//+-------------------------------------------------------------------------
+// provacc.cxx
+//+-------------------------------------------------------------------------
+WINAPI
+GrantAccessRightsW( IN LPWSTR pObjectName,
+ IN PROV_OBJECT_TYPE ObjectType,
+ IN ULONG cCountOfAccessRequests,
+ IN PPROV_ACCESS_REQUEST pListOfAccessRequests);
+WINAPI
+GrantAccessRightsA( IN LPSTR pObjectName,
+ IN PROV_OBJECT_TYPE ObjectType,
+ IN ULONG cCountOfAccessRequests,
+ IN PPROV_ACCESS_REQUEST pListOfAccessRequests);
+#ifdef UNICODE
+#define GrantAccessRights GrantAccessRightsW
+#else
+#define GrantAccessRights GrantAccessRightsA
+#endif // UNICODE
+WINAPI
+ReplaceAllAccessRightsW( IN LPWSTR pObjectName,
+ IN PROV_OBJECT_TYPE ObjectType,
+ IN ULONG cCountOfAccessRequests,
+ IN PPROV_ACCESS_REQUEST pListOfAccessRequests);
+WINAPI
+ReplaceAllAccessRightsA( IN LPSTR pObjectName,
+ IN PROV_OBJECT_TYPE ObjectType,
+ IN ULONG cCountOfAccessRequests,
+ IN PPROV_ACCESS_REQUEST pListOfAccessRequests);
+#ifdef UNICODE
+#define ReplaceAllAccessRights ReplaceAllAccessRightsW
+#else
+#define ReplaceAllAccessRights ReplaceAllAccessRightsA
+#endif // UNICODE
+WINAPI
+SetAccessRightsW( IN LPWSTR pObjectName,
+ IN PROV_OBJECT_TYPE ObjectType,
+ IN ULONG cCountOfAccessRequests,
+ IN PPROV_ACCESS_REQUEST pListOfAccessRequests);
+WINAPI
+SetAccessRightsA( IN LPSTR pObjectName,
+ IN PROV_OBJECT_TYPE ObjectType,
+ IN ULONG cCountOfAccessRequests,
+ IN PPROV_ACCESS_REQUEST pListOfAccessRequests);
+#ifdef UNICODE
+#define SetAccessRights SetAccessRightsW
+#else
+#define SetAccessRights SetAccessRightsA
+#endif // UNICODE
+
+WINAPI
+DenyAccessRightsW( IN LPWSTR pObjectName,
+ IN PROV_OBJECT_TYPE ObjectType,
+ IN ULONG cCountOfAccessRequests,
+ IN PPROV_ACCESS_REQUEST pListOfAccessRequests);
+WINAPI
+DenyAccessRightsA( IN LPSTR pObjectName,
+ IN PROV_OBJECT_TYPE ObjectType,
+ IN ULONG cCountOfAccessRequests,
+ IN PPROV_ACCESS_REQUEST pListOfAccessRequests);
+#ifdef UNICODE
+#define DenyAccessRights DenyAccessRightsW
+#else
+#define DenyAccessRights DenyAccessRightsA
+#endif // UNICODE
+
+WINAPI
+RevokeExplicitAccessRightsW(IN LPWSTR pObjectName,
+ IN PROV_OBJECT_TYPE ObjectType,
+ IN ULONG cCountOfTrusteeNames,
+ IN LPWSTR *pListOfTrusteeNames);
+WINAPI
+RevokeExplicitAccessRightsA(IN LPSTR pObjectName,
+ IN PROV_OBJECT_TYPE ObjectType,
+ IN ULONG cCountOfTrusteeNames,
+ IN LPSTR *pListOfTrusteeNames);
+#ifdef UNICODE
+#define RevokeExplicitAccessRights RevokeExplicitAccessRightsW
+#else
+#define RevokeExplicitAccessRights RevokeExplicitAccessRightsA
+#endif // UNICODE
+
+WINAPI
+IsAccessPermittedW( IN LPWSTR pObjectName,
+ IN PROV_OBJECT_TYPE ObjectType,
+ IN LPWSTR pTrusteeName,
+ IN ACCESS_RIGHTS ulRequestedRights,
+ OUT PBOOL pbResult);
+WINAPI
+IsAccessPermittedA( IN LPSTR pObjectName,
+ IN PROV_OBJECT_TYPE ObjectType,
+ IN LPSTR pTrusteeName,
+ IN ACCESS_RIGHTS ulRequestedRights,
+ OUT PBOOL pbResult);
+#ifdef UNICODE
+#define IsAccessPermitted IsAccessPermittedW
+#else
+#define IsAccessPermitted IsAccessPermittedA
+#endif // UNICODE
+
+WINAPI
+GetEffectiveAccessRightsW( IN LPWSTR pObjectName,
+ IN PROV_OBJECT_TYPE ObjectType,
+ IN LPWSTR pTrusteeName,
+ OUT PACCESS_RIGHTS pulReturnedAccess);
+WINAPI
+GetEffectiveAccessRightsA( IN LPSTR pObjectName,
+ IN PROV_OBJECT_TYPE ObjectType,
+ IN LPSTR pTrusteeName,
+ OUT PACCESS_RIGHTS pulReturnedAccess);
+#ifdef UNICODE
+#define GetEffectiveAccessRights GetEffectiveAccessRightsW
+#else
+#define GetEffectiveAccessRights GetEffectiveAccessRightsA
+#endif // UNICODE
+
+WINAPI
+GetExplicitAccessRightsW(IN LPWSTR pObjectName,
+ IN PROV_OBJECT_TYPE ObjectType,
+ OUT PULONG pcCountOfExplicitAccesses,
+ OUT PPROV_EXPLICIT_ACCESS *pListOfExplicitAccesses);
+WINAPI
+GetExplicitAccessRightsA(IN LPSTR pObjectName,
+ IN PROV_OBJECT_TYPE ObjectType,
+ OUT PULONG pcCountOfExplicitAccesses,
+ OUT PPROV_EXPLICIT_ACCESS *pListOfExplicitAccesses);
+#ifdef UNICODE
+#define GetExplicitAccessRights GetExplicitAccessRightsW
+#else
+#define GetExplicitAccessRights GetExplicitAccessRightsA
+#endif // UNICODE
+
+//----------------------------------------------------------------------------
+// from enumapi.cxx
+//----------------------------------------------------------------------------
+typedef struct _RESUME_KEY
+{
+ DWORD (*CallEnumTrustees)(IN LPWSTR pObjectName,
+ IN PROV_OBJECT_TYPE ObjectType,
+ IN LPWSTR pMachineName,
+ IN LPWSTR pFilter,
+ IN BOOL bFilterFullNames,
+ IN ULONG cSizeOfTrusteeNames,
+ OUT PULONG pcCountOfTrusteeNames,
+ OUT LPWSTR *pListOfTrusteeNames,
+ IN OUT PRESUME_KEY *pRresumeKey);
+
+ DWORD (*CallCloseEnumTrusteesKey)( IN PRESUME_KEY presumekey);
+
+ ULONG ProviderSpecificStart; // resume key must be contiguous(???)
+} RESUME_KEY, *PIRESUME_KEY;
+
+WINAPI
+CloseEnumTrusteesKey( IN PRESUME_KEY presumekey);
+
+WINAPI
+EnumTrusteesW( IN LPWSTR pObjectName,
+ IN PROV_OBJECT_TYPE ObjectType,
+ IN LPWSTR pFilter,
+ IN BOOL bFilterFullNames,
+ IN ULONG cSizeOfTrusteeNames,
+ OUT PULONG pcCountOfTrusteeNames,
+ OUT LPWSTR *pListOfTrusteeNames,
+ IN OUT PRESUME_KEY *pRresumeKey);
+
+WINAPI
+EnumTrusteesA( IN LPSTR pObjectName,
+ IN PROV_OBJECT_TYPE ObjectType,
+ IN LPSTR pFilter,
+ IN BOOL bFilterFullNames,
+ IN ULONG cSizeOfTrusteeNames,
+ OUT PULONG pcCountOfTrusteeNames,
+ OUT LPSTR *pListOfTrusteeNames,
+ IN OUT PRESUME_KEY *pRresumeKey);
+
+#ifdef UNICODE
+#define EnumTrustees EnumTrusteesW
+#else
+#define EnumTrustees EnumTrusteesA
+#endif // UNICODE
+#ifdef __cplusplus
+}
+#endif
+#endif // __PROVIDER_INDEPENDENT_ACCESS__
+
+