0

我正在尝试使用 Microsoft 的通用日志文件系统 (CLFS) API。我的代码看起来像这样。

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;
}

CreateLogFile()函数执行得很好,我什至可以看到.blf文件系统上出现了一个文件。但RegisterManageableLogClient()返回错误并GetLastError()返回5“访问被拒绝”的值。此代码与MSDN上的示例几乎相同。

我无法弄清楚为什么会RegisterManageableLogClient()失败。

更新:

问题丢失GENERIC_READCreateLogFile()

4

2 回答 2

0

由于您正在与策略进行交互,我猜您需要管理凭据来执行注册。这就是您获得 Access_denied 的原因。

于 2012-05-22T11:59:05.980 回答
0

问题丢失GENERIC_READCreateLogFile()

于 2012-05-31T04:50:53.113 回答