Prev Next

GetAccessPermissionsForObject info  Overview  Group

[This is a preview of an interface that may appear in future releases of Windows.]

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”}

…

Currently, the import library for the GetAccessPermissionsForObject function is ACCSRC.LIB. This is temporary. Eventually, the import library will be ADVAPI32.LIB. Meanwhile, any source code that links with the ACCSRC.LIB library must call the AccProvInit macro as follows:

    DWORD dwErrcode;



    AccProvInit(dwErrcode);

    if(dwErrcode != ERROR_SUCCESS)

    {

         // Consider this an error...

    }

 

See Also

ACTRL_ACCESS_INFO, SE_OBJECT_TYPE