0

Microsoft の Common Log File System (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()値を返します。このコードは、MSDN の例5とほぼ同じです。

呼び出しがRegisterManageableLogClient()失敗する理由がわかりません。

アップデート:

の問題が見つかりませんGENERIC_READでしCreateLogFile()た。

4

2 に答える 2

0

の問題が見つかりませんGENERIC_READでしCreateLogFile()た。

于 2012-05-31T04:50:53.113 に答える
0

ポリシーとやり取りしているので、登録を実行するには管理者の資格情報が必要だと思います。これが Access_denied を取得する理由です。

于 2012-05-22T11:59:05.980 に答える