Función AuthzCachedAccessCheck (authz.h)

La función AuthzCachedAccessCheck realiza una comprobación de acceso rápido basada en un identificador almacenado en caché que contiene los bits concedidos estáticos de una llamada a AuthzAccessCheck anterior.

Sintaxis

AUTHZAPI BOOL AuthzCachedAccessCheck(
  [in]  DWORD                             Flags,
  [in]  AUTHZ_ACCESS_CHECK_RESULTS_HANDLE hAccessCheckResults,
  [in]  PAUTHZ_ACCESS_REQUEST             pRequest,
  [in]  AUTHZ_AUDIT_EVENT_HANDLE          hAuditEvent,
  [out] PAUTHZ_ACCESS_REPLY               pReply
);

Parámetros

[in] Flags

Reservado para uso futuro.

[in] hAccessCheckResults

Identificador de los resultados de la comprobación de acceso almacenado en caché.

[in] pRequest

Identificador de solicitud de acceso que especifica la máscara de acceso deseada, el SID de entidad de seguridad y la estructura de lista de tipos de objeto (si existe).

[in] hAuditEvent

Estructura que contiene información de auditoría específica del objeto. Cuando el valor de este parámetro no es NULL, se solicita automáticamente una auditoría. La información de auditoría estática se lee de la estructura del administrador de recursos.

[out] pReply

Puntero a un identificador de AUTHZ_ACCESS_REPLY que devuelve los resultados de la comprobación de acceso como una matriz de pares GrantedAccessMask/ErrorValue. El autor de la llamada proporciona el número de pares devueltos en el miembro ResultListLength de la estructura AUTHZ_ACCESS_REPLY .

Valor devuelto

Si la función se ejecuta correctamente, devuelve TRUE.

Si se produce un error en la función, devuelve FALSE. Para obtener información de error extendida, llame a GetLastError.

Los valores esperados de los miembros error de los elementos de matriz devueltos se muestran en la tabla siguiente.

Código devuelto Descripción
ERROR_SUCCESS
Se conceden todos los bits de acceso, no incluidos MAXIMUM_ALLOWED, y el miembro GrantedAccessMask del parámetro pReply no es cero.
ERROR_PRIVILEGE_NOT_HELD
El miembro DesiredAccess del parámetro pRequest incluye ACCESS_SYSTEM_SECURITY y el cliente no tiene el privilegio SeSecurityPrivilege.
ERROR_ACCESS_DENIED
Se cumple una o varias de las siguientes condiciones:
  • No se conceden los bits solicitados.
  • El bit MaximumAllowed está activado y el acceso concedido es cero.
  • El miembro DesiredAccess del parámetro pRequest es cero.

Comentarios

El puntero de contexto de cliente se almacena en el parámetro AuthzHandle . La estructura del contexto de cliente debe ser exactamente la misma que en el momento en que se creó AuthzHandle . Esta restricción es para los campos siguientes:

  • SID
  • RestrictedSids
  • Privilegios
Los punteros al descriptor de seguridad principal y la matriz de descriptores de seguridad opcionales se almacenan en AuthzHandle en el momento de la creación del identificador. Estos punteros deben seguir siendo válidos.

La función AuthzCachedAccessCheck mantiene una memoria caché como resultado de evaluar las directivas de acceso central (CAP) en objetos a menos que se omitan las CAL, por ejemplo, cuando se usa la marca de AUTHZ_RM_FLAG_NO_CENTRAL_ACCESS_POLICIES. El cliente puede llamar a la función AuthzFreeCentralAccessPolicyCache para liberar esta memoria caché. Tenga en cuenta que esto requiere una llamada posterior a AuthzCachedAccessCheck para volver a generar la memoria caché si es necesario.

Para obtener más información, consulte la información general sobre cómo funciona AccessCheck y la directiva de autorización centralizada .

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 authz.h
Library Authz.lib
Archivo DLL Authz.dll
Redistribuible Paquete de herramientas de administración de Windows Server 2003 en Windows XP

Consulte también

AUTHZ_ACCESS_REPLY

AuthzAccessCheck

AuthzFreeCentralAccessPolicyCache

AuthzInitializeResourceManager

Funciones básicas de Access Control

Directiva de autorización centralizada

Funcionamiento de AccessCheck