2

プロセス間通信に共有メモリ マップを使用しています。このマップはセッション間で表示される必要があるため、グローバル名前空間で作成しようとしています。これを機能させるには、実行中のユーザーに SeCreateGlobalPrivilege が必要であることを知っています。

ローカル セキュリティ ポリシー (ドメインに参加していない) を編集して、ユーザーに "Create Global Objects" 権限を与えましたが、アプリケーションを実行すると、この権限はアクセス トークンにありません。管理者として実行すると、特権が得られます。

私は何が欠けていますか?なぜ私はこの特権を取得しないのですか?

4

2 に答える 2

2

OpenThreadToken()を呼び出す前に、と を使用しAdjustTokenPrivileges()て、呼び出しスレッドの特権を有効にしてみてくださいCreateFileMapping()

C++ での権限の有効化と無効化

于 2013-08-21T22:39:21.473 に答える
0

管理者としてログインしている場合、管理者として実行しない限り、UAC は特権をフィルタリングします。

通常のユーザーとしてログインしている場合は、常に特権を持っています (ローカル セキュリティ ポリシーから許可した場合)。

于 2015-08-19T11:58:31.193 に答える