Common Log File System API's RegisterManageableLogClient() y error "acceso denegado"
Frecuentes
Visto 335 veces
0
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()
.
2 Respuestas
0
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
0
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 c++ winapi clfs or haz tu propia pregunta.
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