[This is a preview of an interface that may appear in future releases of Windows.]
The SetEntriesInAccessList function creates a new access-control list by merging specified access-control information into an existing access-control list. You can specify access-control information for an object or for a specified property on an object.
DWORD SetEntriesInAccessList(
ULONG cEntries, |
// Number of entries in the entry list |
PACTRL_ACCESS_ENTRY pAccessEntryList, |
// array of access-control entry information |
ACCESS_MODE AccessMode, |
// merge, replace, or revoke trustee access |
LPCTSTR lpProperty, |
// GUID string of a property |
PACTRL_ACCESS pOldList, |
// pointer to the old access-control list |
PACTRL_ACCESS *ppNewList |
// receives a pointer to the new list |
); |
Value |
Meaning |
GRANT_ACCESS |
Adds the new entries to the front of the access-control list. Existing entries are not removed from the list. |
REVOKE_ACCESS |
Remove from the existing list all explicit entries for trustees specified in the pAccessEntryList array. |
SET_ACCESS |
Adds the new entries to the front of the access-control list. Existing entries for the same trustees are removed from the list. |
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_NOT_ENOUGH_MEMORY |
A memory allocation failed |
ERROR_INVALID_PARAMETER |
An invalid parameter was specified. |
Currently, the import library for the SetEntriesInAccessList 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... }