次の方法で共有


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 つによって設定された値と同じであることを意図しています。 アクセス チェック関数の例としては、 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
ヘッダー 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