GetAccessPermissionsForObject

[This is preliminary documentation and subject to change.]

The GetAccessPermissionsForObject function determines the access rights supported by a specified object.

DWORD GetAccessPermissionsForObject(
  LPCTSTR lpObject,    // name of the object
  SE_OBJECT_TYPE ObjectType,
                       // type of object
  LPCTSTR lpProvider,  // name of provider to handle request
  PULONG pcEntries,    // receives number of entries in the array
  PACTRL_ACCESS_INFO *ppAccessInfoList,
                       // receives an array of access information
  PULONG pfAccessFlags // receives access flags
);
 

Parameters

lpObject
Pointer to a null-terminated string that specifies the name of the object for which to get the list of supported access rights. For descriptions of the string formats for the different object types, see SE_OBJECT_TYPE.
ObjectType
Specifies a value from the SE_OBJECT_TYPE enumeration that indicates the type of object named by the lpObject parameter.
lpProvider
Pointer to a null-terminated string that specifies the name of the provider to handle the request. If this parameter is NULL, the system determines the proper provider to handle the request.
pcEntries
Pointer to a ULONG value that receives the number of entries returned in the ppAccessInfoList array.
ppAccessInfoList
Pointer to a variable that receives a pointer to an array of ACTRL_ACCESS_INFO structures. Each entry identifies an access right supported by the object. Call the LocalFree function to free the returned buffer.
pfAccessFlags
Pointer to a ULONG value that can receive the following access flag.
Value Meaning
ACTRL_ACCESS_SUPPORTS_OBJECT_ENTRIES
The object's provider supports setting access-control entries on the object's properties, and it also supports propagating inherited entries to child objects.

Return Values

If the function succeeds, the return value is ERROR_SUCCESS.

If the function fails, the return value can be one of the following error codes.

Value Meaning
ERROR_BAD_PROVIDER The lpProvider parameter specified an invalid provider name.
ERROR_INVALID_PARAMETER An invalid parameter was specified.
ERROR_NOT_ENOUGH_MEMORY A memory allocation failed.

Remarks

The GetAccessPermissionsForObject function returns an array of ACTRL_ACCESS_INFO structures to indicate the access rights an object supports. For example, the array for an SE_FILE_OBJECT object type might include the following access rights and string descriptions.

{ACTRL_SYNCHRONIZE, "Synchronize"},
{ACTRL_CHANGE_OWNER, "Change Owner"},
{ACTRL_CHANGE_ACCESS, "Change Access"},
…
{ACTRL_FILE_READ, "Read File"},
{ACTRL_FILE_WRITE, "Write File"}
…

QuickInfo

  Windows NT: Requires version 5.0 or later.
  Windows: Unsupported.
  Windows CE: Unsupported.
  Header: Declared in aclapi.h.
  Import Library: Use advapi.lib.
  Unicode: Implemented as Unicode and ANSI versions on Windows NT.

See Also

Client/Server Access Control Overview, Client/Server Access Control Functions, ACTRL_ACCESS_INFO, SE_OBJECT_TYPE