Función AccessCheckAndAuditAlarmW (securitybaseapi.h)

La función AccessCheckAndAuditAlarm determina si un descriptor de seguridad concede un conjunto especificado de derechos de acceso al cliente suplantado por el subproceso que realiza la llamada. Si el descriptor de seguridad tiene una SACL con ACE que se aplican al cliente, la función genera los mensajes de auditoría necesarios en el registro de eventos de seguridad.

Sintaxis

BOOL AccessCheckAndAuditAlarmW(
  [in]           LPCWSTR              SubsystemName,
  [in, optional] LPVOID               HandleId,
  [in]           LPWSTR               ObjectTypeName,
  [in, optional] LPWSTR               ObjectName,
  [in]           PSECURITY_DESCRIPTOR SecurityDescriptor,
  [in]           DWORD                DesiredAccess,
  [in]           PGENERIC_MAPPING     GenericMapping,
  [in]           BOOL                 ObjectCreation,
  [out]          LPDWORD              GrantedAccess,
  [out]          LPBOOL               AccessStatus,
  [out]          LPBOOL               pfGenerateOnClose
);

Parámetros

[in] SubsystemName

Puntero a una cadena terminada en null que especifica el nombre del subsistema que llama a la función. Esta cadena aparece en cualquier mensaje de auditoría que genere la función.

[in, optional] HandleId

Puntero a un valor único que representa el identificador del cliente para el objeto. Si se deniega el acceso, el sistema omite este valor.

[in] ObjectTypeName

Puntero a una cadena terminada en null que especifica el tipo de objeto que se va a crear o tener acceso a él. Esta cadena aparece en cualquier mensaje de auditoría que genere la función.

[in, optional] ObjectName

Puntero a una cadena terminada en null que especifica el nombre del objeto que se va a crear o tener acceso a él. Esta cadena aparece en cualquier mensaje de auditoría que genere la función.

[in] SecurityDescriptor

Puntero a la estructura SECURITY_DESCRIPTOR en la que se comprueba el acceso.

[in] DesiredAccess

Máscara de acceso que especifica los derechos de acceso que se van a comprobar. La función MapGenericMask debe haber asignado esta máscara para que no contenga derechos de acceso genéricos.

Si este parámetro es MAXIMUM_ALLOWED, la función establece la máscara de acceso GrantedAccess para indicar los derechos de acceso máximos que el descriptor de seguridad permite al cliente.

[in] GenericMapping

Puntero a la estructura de GENERIC_MAPPING asociada al objeto para el que se comprueba el acceso.

[in] ObjectCreation

Especifica una marca que determina si la aplicación que realiza la llamada creará un nuevo objeto cuando se conceda acceso. Un valor true indica que la aplicación creará un nuevo objeto. Un valor false indica que la aplicación abrirá un objeto existente.

[out] GrantedAccess

Puntero a una máscara de acceso que recibe los derechos de acceso concedidos. Si AccessStatus se establece en FALSE, la función establece la máscara de acceso en cero. Si se produce un error en la función, no establece la máscara de acceso.

[out] AccessStatus

Puntero a una variable que recibe los resultados de la comprobación de acceso. Si el descriptor de seguridad permite los derechos de acceso solicitados al cliente, AccessStatus se establece en TRUE. De lo contrario, AccessStatus se establece en FALSE.

[out] pfGenerateOnClose

Puntero a una marca establecida por la rutina de generación de auditoría cuando la función devuelve. Pase esta marca a la función ObjectCloseAuditAlarm cuando se cierre el identificador del objeto.

Valor devuelto

Si la función se realiza correctamente, el valor devuelto es distinto de cero.

Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.

Comentarios

Para obtener más información, consulte la información general sobre cómo funciona AccessCheck .

La función AccessCheckAndAuditAlarm requiere que el proceso de llamada tenga habilitado el privilegio SE_AUDIT_NAME. La prueba de este privilegio se realiza con el token principal del proceso de llamada, no con el token de suplantación del subproceso .

Se produce un error en la función AccessCheckAndAuditAlarm si el subproceso que realiza la llamada no suplanta a un cliente.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado securitybaseapi.h (incluya Windows.h)
Library Advapi32.lib
Archivo DLL Advapi32.dll

Consulte también

AccessCheck
Access Control cliente/servidor
Funciones de Access Control cliente/servidor
GENERIC_MAPPING
Funcionamiento de AccessCheck
MakeAbsoluteSD
MapGenericMask
ObjectCloseAuditAlarm
ObjectOpenAuditAlarm
ObjectPrivilegeAuditAlarm
PrivilegeCheck
PrivilegedServiceAuditAlarm
SECURITY_DESCRIPTOR