BOOL MakeAbsoluteSD(pSelfRelativeSecurityDescriptor, pAbsoluteSecurityDescriptor, lpdwAbsoluteSecurityDescriptorSize, pDacl, lpdwDaclSize, pSacl, lpdwSaclSize, pOwner, lpdwOwnerSize, pPrimaryGroup, lpdwPrimaryGroupSize) | |||
PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor; | |||
PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor; | |||
LPDWORD lpdwAbsoluteSecurityDescriptorSize; | |||
PACL pDacl; | |||
LPDWORD lpdwDaclSize; | |||
PACL pSacl; | |||
LPDWORD lpdwSaclSize; | |||
PSID pOwner; | |||
LPDWORD lpdwOwnerSize; | |||
PSID pPrimaryGroup; | |||
LPDWORD lpdwPrimaryGroupSize; |
The MakeAbsoluteSD function creates an absolute format version of a self-relative format security descriptor.
pSelfRelativeSecurityDescriptor
Pointer to a self-relative format SECURITY_DESCRIPTOR data structure. The function will create an absolute format version of this security descriptor. The function will not modify this security descriptor.
pAbsoluteSecurityDescriptor
Pointer to a buffer that the function will fill with the main body of an absolute format security descriptor. This information will be formatted as a SECURITY_DESCRIPTOR data structure.
lpdwAbsoluteSecurityDescriptorSize
Pointer to a variable that specifies the size of the buffer pointed to by pAbsoluteSecurityDescriptor. If the buffer is not large enough, the function fails, and sets the variable to the minimum buffer size required.
pDacl
Pointer to a buffer that the function will fill with the discretionary access control list (ACL) of the absolute format security descriptor. The main body of the absolute format security descriptor will reference, not copy, this pointer.
The ACL data structure has the following form:
typedef struct _ACL { /* acl */
BYTE AclRevision;
BYTE Sbz1;
WORD AclSize;
WORD AceCount;
WORD Sbz2;
} ACL;
lpdwDaclSize
Pointer to a variable that specifies the size of the buffer pointed to by pDacl. If the buffer is not large enough, the function fails, and sets the variable to the minimum buffer size required.
pSacl
Pointer to a buffer that the function will fill with the system access control list (ACL) of the absolute format security descriptor. The main body of the absolute format security descriptor will reference, not copy, this pointer.
lpdwSaclSize
Pointer to a variable that specifies the size of the buffer pointed to by pSacl. If the buffer is not large enough, the function fails, and sets the variable to the minimum buffer size required.
pOwner
Pointer to a buffer that the function will fill with the security identifier (SID) of the owner of the absolute format security descriptor. The main body of the absolute format security descriptor will reference, not copy, this pointer.
lpdwOwnerSize
Pointer to a variable that specifies the size of the buffer pointed to by pOwner. If the buffer is not large enough, the function fails, and sets the variable to the minimum buffer size required.
pPrimaryGroup
Pointer to a buffer that the function will fill with the security identifier (SID) of the primary group of the absolute format security descriptor. The main body of the absolute format security descriptor will reference, not copy, this pointer.
lpdwPrimaryGroupSize
Pointer to a variable that specifies the size of the buffer pointed to by pPrimaryGroup. If the buffer is not large enough, the function fails, and sets the variable to the minimum buffer size required.
The return value is TRUE if the function was successful, or FALSE if an error occurred. Use the GetLastError function to obtain extended error information.
MakeSelfRelativeSD