Common Log File System API's RegisterManageableLogClient() y error "acceso denegado"

Estoy tratando de usar la API del Sistema de archivos de registro común (CLFS) de Microsoft. Mi código se ve así.

CLFS_MGMT_POLICY log_policy;
CLFS_INFORMATION log_info;
ULONG info_size = sizeof (log_info);
ULONGLONG desired_size;
ULONGLONG resulting_size;

data->log_handle = CreateLogFile (
    helpers::towstring (data->log_name).c_str (), GENERIC_WRITE,
    FILE_SHARE_DELETE | FILE_SHARE_WRITE | FILE_SHARE_READ, 0,
    OPEN_ALWAYS, FILE_ATTRIBUTE_ARCHIVE);

if (data->log_handle == INVALID_HANDLE_VALUE)
{
    loglog_win32_error (LOG4CPLUS_TEXT ("CreateLogFile()"));
    goto error;
}

if (! RegisterManageableLogClient (data->log_handle, 0))
{
    loglog_win32_error (LOG4CPLUS_TEXT ("RegisterManageableLogClient()"));
    goto error;
}

La CreateLogFile() la función se ejecuta bien e incluso puedo ver un .blf El archivo aparece en el sistema de archivos. Pero RegisterManageableLogClient() regresa con error y GetLastError() devuelve valor 5 que es "Acceso denegado". Este código es casi idéntico a ejemplo en MSDN.

No puedo entender por qué es la llamada a RegisterManageableLogClient() defecto.

ACTUALIZACIÓN:

faltaba el problema GENERIC_READ para CreateLogFile().

preguntado el 22 de mayo de 12 a las 12:05

2 Respuestas

Dado que está interactuando con la política, supongo que necesita credenciales administrativas para realizar el registro. Es por eso que obtiene Access_denied.

contestado el 22 de mayo de 12 a las 12:05

No, ejecuto esto como administrador. - Wilx

ACCESS_DENIED podría significar que la cosa todavía está en uso (wikienciclopedia.net/4.0/DEVDIV_TFS/Dev10/Releases/RTMRel/ndp/…) - mox

faltaba el problema GENERIC_READ para CreateLogFile().

contestado el 31 de mayo de 12 a las 05:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.