ObjectPrivilegeAuditAlarmA 関数 (winbase.h)
ObjectPrivilegeAuditAlarm 関数は、セキュリティ イベント ログに監査メッセージを生成します。 保護されたサーバーは、この関数を使用して、クライアントがプライベート オブジェクトへの開いたハンドルで指定された 特権 セットを使用しようとする試行をログに記録できます。 アラームは現在サポートされていません。
構文
BOOL ObjectPrivilegeAuditAlarmA(
[in] LPCSTR SubsystemName,
[in] LPVOID HandleId,
[in] HANDLE ClientToken,
[in] DWORD DesiredAccess,
[in] PPRIVILEGE_SET Privileges,
[in] BOOL AccessGranted
);
パラメーター
[in] SubsystemName
関数を呼び出すサブシステムの名前を指定する null で終わる文字列へのポインター。 この文字列は監査メッセージに表示されます。
[in] HandleId
オブジェクトへのクライアントのハンドルを表す一意の値へのポインター。
[in] ClientToken
操作を要求したクライアントを表す アクセス トークン を識別します。 このハンドルは、クライアントを偽装するスレッドのトークンを開くことで取得されている必要があります。 TOKEN_QUERYアクセスするには、トークンを開く必要があります。 関数は、このトークンを使用して、監査メッセージのクライアントの ID を取得します。
[in] DesiredAccess
使用されている特権 アクセス の種類、または使用が試行されている特権アクセスの種類を示すアクセス マスクを指定します。 アクセス マスクは MapGenericMask 関数によってマップできるため、ジェネリック アクセスの種類は含まれません。
[in] Privileges
クライアントが使用しようとした特権を含むPRIVILEGE_SET構造体へのポインター。 特権の名前は、監査メッセージに表示されます。
[in] AccessGranted
クライアントによる特権の使用が成功したかどうかを示します。 この値が TRUE の場合、監査メッセージは成功を示します。 この値が FALSE の場合、監査メッセージはエラーを示します。
戻り値
関数が成功すると、戻り値は 0 以外になります。
関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。
解説
ObjectPrivilegeAuditAlarm 関数は、クライアントのオブジェクトへのアクセスをチェックしたり、クライアントのアクセス トークンをチェックして特権を保持するか有効にするかを判断したりしません。 通常、PrivilegeCheck 関数を呼び出して、指定された特権がアクセス トークンで有効になっているかどうかを判断し、AccessCheck 関数を呼び出してクライアントのオブジェクトへのアクセスをチェックし、ObjectPrivilegeAuditAlarm を呼び出して結果をログに記録します。
ObjectPrivilegeAuditAlarm 関数では、呼び出し元プロセスでSE_AUDIT_NAME特権が有効になっている必要があります。 この特権のテストは、スレッドの偽装トークンではなく、呼び出し元プロセスの プライマリトークン に対して常に実行されます。 これにより、呼び出しプロセスは、呼び出し中にクライアントを偽装できます。
要件
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | winbase.h (Windows.h を含む) |
Library | Advapi32.lib |
[DLL] | Advapi32.dll |