ObjectOpenAuditAlarmA 関数 (winbase.h)

ObjectOpenAuditAlarm 関数は、クライアント アプリケーションがオブジェクトへのアクセスまたは新しいオブジェクトの作成を試みたときに監査メッセージを生成します。 アラームは現在サポートされていません。

構文

BOOL ObjectOpenAuditAlarmA(
  [in]           LPCSTR               SubsystemName,
  [in]           LPVOID               HandleId,
  [in]           LPSTR                ObjectTypeName,
  [in, optional] LPSTR                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 つによって設定された値と同じ値であることを意図しています。 アクセス チェック関数の例としては、 AccessCheckAndAuditAlarmAccessCheck などがあります

[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
ヘッダー winbase.h (Windows.h を含む)
Library Advapi32.lib
[DLL] Advapi32.dll

こちらもご覧ください

AccessCheck

AccessCheckAndAuditAlarm

AreAllAccessesGranted

AreAnyAccessesGranted

クライアント/サーバー Access Control

クライアント/サーバー Access Control関数

MapGenericMask

ObjectCloseAuditAlarm

ObjectDeleteAuditAlarm

ObjectPrivilegeAuditAlarm

PRIVILEGE_SET

PrivilegeCheck

PrivilegedServiceAuditAlarm

SECURITY_DESCRIPTOR