ObjectOpenAuditAlarmW 関数 (securitybaseapi.h)
ObjectOpenAuditAlarm 関数は、クライアント アプリケーションがオブジェクトへのアクセスまたは新しいオブジェクトの作成を試みたときに監査メッセージを生成します。 アラームは現在サポートされていません。
構文
BOOL ObjectOpenAuditAlarmW(
[in] LPCWSTR SubsystemName,
[in] LPVOID HandleId,
[in] LPWSTR ObjectTypeName,
[in, optional] LPWSTR ObjectName,
[in] PSECURITY_DESCRIPTOR pSecurityDescriptor,
[in] HANDLE ClientToken,
[in] DWORD DesiredAccess,
[in] DWORD GrantedAccess,
[in, optional] PPRIVILEGE_SET Privileges,
[in] BOOL ObjectCreation,
[in] BOOL AccessGranted,
[out] LPBOOL GenerateOnClose
);
パラメーター
[in] SubsystemName
関数を呼び出すサブシステムの名前を指定する null で終わる文字列へのポインター。 この文字列は、関数が生成するすべての監査メッセージに表示されます。
[in] HandleId
オブジェクトへのクライアントのハンドルを表す一意の値へのポインター。 アクセスが拒否された場合、このパラメーターは無視されます。
クロスプラットフォーム互換性のために、このポインターによってアドレス指定される値は sizeof(LPVOID) バイト長である必要があります。
[in] ObjectTypeName
クライアントがアクセスを要求しているオブジェクトの種類を指定する null で終わる文字列へのポインター。 この文字列は、関数が生成するすべての監査メッセージに表示されます。
[in, optional] ObjectName
クライアントがアクセスを要求しているオブジェクトの名前を指定する null で終わる文字列へのポインター。 この文字列は、関数が生成するすべての監査メッセージに表示されます。
[in] pSecurityDescriptor
アクセスするオブジェクトの SECURITY_DESCRIPTOR 構造体へのポインター。
[in] ClientToken
操作を要求するクライアントを表す アクセス トークン を識別します。 このハンドルは、クライアントを偽装するスレッドのトークンを開いて取得する必要があります。 トークンは、TOKEN_QUERYアクセスのために開いている必要があります。
[in] DesiredAccess
目的の アクセス マスクを指定します。 このマスクは、汎用アクセス権を含めずに MapGenericMask 関数によって以前にマップされている必要があります。
[in] GrantedAccess
どのアクセス権が付与されているかを示すアクセス マスクを指定します。 このアクセス マスクは、 GrantedAccess パラメーターのアクセス チェック関数の 1 つによって設定された値と同じであることを意図しています。 アクセス チェック関数の例としては、 AccessCheckAndAuditAlarm や AccessCheck などがあります。
[in, optional] Privileges
アクセス試行に 必要な 一連の 特権 を指定するPRIVILEGE_SET構造体へのポインター。 このパラメーターは、NULL でもかまいません。
[in] ObjectCreation
アクセスが許可されたときにアプリケーションが新しいオブジェクトを作成するかどうかを決定するフラグを指定します。 この値が TRUE の場合、アプリケーションは新しいオブジェクトを作成します。 FALSE の場合、アプリケーションは既存のオブジェクトを開きます。
[in] AccessGranted
AccessCheck などのアクセス チェック関数の以前の呼び出しでアクセスが許可または拒否されたかどうかを示すフラグを指定します。 アクセスが許可された場合、この値は TRUE です。 そうでない場合は FALSE です。
[out] GenerateOnClose
関数が戻るときに監査生成ルーチンによって設定されたフラグへのポインター。 この値は、オブジェクト ハンドルを閉じるときに ObjectCloseAuditAlarm 関数に渡す必要があります。
戻り値
関数が成功すると、戻り値は 0 以外になります。
関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。
解説
ObjectOpenAuditAlarm 関数では、呼び出し元のアプリケーションでSE_AUDIT_NAME特権を有効にする必要があります。 この特権のテストは、スレッドの偽装トークンではなく、呼び出し元プロセスのプライマリトークンに対して常に実行されます。 これにより、呼び出しプロセスは、呼び出し中にクライアントを偽装できます。
要件
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | securitybaseapi.h (Windows.h を含む) |
Library | Advapi32.lib |
[DLL] | Advapi32.dll |
関連項目
AccessCheck
AccessCheckAndAuditAlarmAreAllAccessesGranted
AreAnyAccessesGranted
クライアント/サーバー Access Control
クライアント/サーバー Access Control関数
MapGenericMask
ObjectCloseAuditAlarmObjectDeleteAuditAlarm
ObjectPrivilegeAuditAlarm
PRIVILEGE_SET
PrivilegeCheck
PrivilegedServiceAuditAlarm
SECURITY_DESCRIPTOR