Función MakeAbsoluteSD (securitybaseapi.h)
La función MakeAbsoluteSD crea un descriptor de seguridad en formato absoluto mediante un descriptor de seguridad en formato autoconsiente como plantilla.
Sintaxis
BOOL MakeAbsoluteSD(
[in] PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor,
[out, optional] PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor,
[in, out] LPDWORD lpdwAbsoluteSecurityDescriptorSize,
[out, optional] PACL pDacl,
[in, out] LPDWORD lpdwDaclSize,
[out, optional] PACL pSacl,
[in, out] LPDWORD lpdwSaclSize,
[out, optional] PSID pOwner,
[in, out] LPDWORD lpdwOwnerSize,
[out, optional] PSID pPrimaryGroup,
[in, out] LPDWORD lpdwPrimaryGroupSize
);
Parámetros
[in] pSelfRelativeSecurityDescriptor
Puntero a una estructura de SECURITY_DESCRIPTOR en formato relativo propio. La función crea una versión de formato absoluto de este descriptor de seguridad sin modificar el descriptor de seguridad original.
[out, optional] pAbsoluteSecurityDescriptor
Puntero a un búfer que la función rellena con el cuerpo principal de un descriptor de seguridad de formato absoluto. Esta información tiene el formato de estructura SECURITY_DESCRIPTOR .
[in, out] lpdwAbsoluteSecurityDescriptorSize
Puntero a una variable que especifica el tamaño del búfer al que apunta el parámetro pAbsoluteSD . Si el búfer no es lo suficientemente grande para el descriptor de seguridad, se produce un error en la función y establece esta variable en el tamaño mínimo necesario.
[out, optional] pDacl
Puntero a un búfer que la función rellena con la lista de control de acceso discrecional (DACL) del descriptor de seguridad de formato absoluto. El cuerpo principal del descriptor de seguridad de formato absoluto hace referencia a este puntero.
[in, out] lpdwDaclSize
Puntero a una variable que especifica el tamaño del búfer al que apunta el parámetro pDacl . Si el búfer no es lo suficientemente grande para la lista de control de acceso (ACL), se produce un error en la función y establece esta variable en el tamaño mínimo necesario.
[out, optional] pSacl
Puntero a un búfer que la función rellena con la lista de control de acceso del sistema (SACL) del descriptor de seguridad de formato absoluto. El cuerpo principal del descriptor de seguridad de formato absoluto hace referencia a este puntero.
[in, out] lpdwSaclSize
Puntero a una variable que especifica el tamaño del búfer al que apunta el parámetro pSacl . Si el búfer no es lo suficientemente grande para la ACL, se produce un error en la función y establece esta variable en el tamaño mínimo necesario.
[out, optional] pOwner
Puntero a un búfer que la función rellena con el identificador de seguridad (SID) del propietario del descriptor de seguridad de formato absoluto. El cuerpo principal del descriptor de seguridad de formato absoluto hace referencia a este puntero.
[in, out] lpdwOwnerSize
Puntero a una variable que especifica el tamaño del búfer al que apunta el parámetro pOwner . Si el búfer no es lo suficientemente grande para el SID, se produce un error en la función y establece esta variable en el tamaño mínimo necesario.
[out, optional] pPrimaryGroup
Puntero a un búfer que la función rellena con el SID del grupo principal del descriptor de seguridad de formato absoluto. El cuerpo principal del descriptor de seguridad de formato absoluto hace referencia a este puntero.
[in, out] lpdwPrimaryGroupSize
Puntero a una variable que especifica el tamaño del búfer al que apunta el parámetro pPrimaryGroup . Si el búfer no es lo suficientemente grande para el SID, se produce un error en la función y establece esta variable en el tamaño mínimo necesario.
Valor devuelto
Si la función se ejecuta correctamente, la función devuelve un valor distinto de cero.
Si se produce un error en la función, devuelve cero. Para obtener información de error extendida, llame a GetLastError. Entre los códigos de retorno posibles se incluyen, entre otros, los siguientes.
Código o valor devuelto | Descripción |
---|---|
|
Uno o varios de los búferes son demasiado pequeños. |
Comentarios
Un descriptor de seguridad en formato absoluto contiene punteros a la información que contiene, en lugar de la propia información. Un descriptor de seguridad en formato autorrelativo contiene la información en un bloque contiguo de memoria. En un descriptor de seguridad relativo a sí mismo, una estructura de SECURITY_DESCRIPTOR siempre inicia la información, pero los demás componentes del descriptor de seguridad pueden seguir la estructura en cualquier orden. En lugar de usar direcciones de memoria, los componentes del descriptor de seguridad autorrelativo se identifican mediante desplazamientos desde el principio del descriptor de seguridad. Este formato es útil cuando un descriptor de seguridad debe almacenarse en un disco de disquete o transmitirse mediante un protocolo de comunicaciones.
Un servidor que copia objetos protegidos en varios medios puede usar la función MakeAbsoluteSD para crear un descriptor de seguridad absoluto a partir de un descriptor de seguridad autocontenido y la función MakeSelfRelativeSD para crear un descriptor de seguridad autocontenido a partir de un descriptor de seguridad absoluto.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows XP [aplicaciones de escritorio | aplicaciones para UWP] |
Servidor mínimo compatible | Windows Server 2003 [aplicaciones de escritorio | aplicaciones para UWP] |
Plataforma de destino | Windows |
Encabezado | securitybaseapi.h (incluya Windows.h) |
Library | Advapi32.lib |
Archivo DLL | Advapi32.dll |