次の方法で共有


AccessCheckAndAuditAlarmW 関数 (securitybaseapi.h)

AccessCheckAndAuditAlarm 関数は、セキュリティ記述子が、呼び出し元スレッドによって偽装されているクライアントに対して、指定されたアクセス権のセットを許可するかどうかを決定します。 セキュリティ記述子に、クライアントに適用される ACE を含む SACL がある場合、この関数はセキュリティ イベント ログに必要な監査メッセージを生成します。

構文

BOOL AccessCheckAndAuditAlarmW(
  [in]           LPCWSTR              SubsystemName,
  [in, optional] LPVOID               HandleId,
  [in]           LPWSTR               ObjectTypeName,
  [in, optional] LPWSTR               ObjectName,
  [in]           PSECURITY_DESCRIPTOR SecurityDescriptor,
  [in]           DWORD                DesiredAccess,
  [in]           PGENERIC_MAPPING     GenericMapping,
  [in]           BOOL                 ObjectCreation,
  [out]          LPDWORD              GrantedAccess,
  [out]          LPBOOL               AccessStatus,
  [out]          LPBOOL               pfGenerateOnClose
);

パラメーター

[in] SubsystemName

関数を呼び出すサブシステムの名前を指定する null で終わる文字列へのポインター。 この文字列は、関数によって生成されるすべての監査メッセージに表示されます。

[in, optional] HandleId

オブジェクトへのクライアントのハンドルを表す一意の値へのポインター。 アクセスが拒否された場合、システムはこの値を無視します。

[in] ObjectTypeName

作成またはアクセスされるオブジェクトの種類を指定する null で終わる文字列へのポインター。 この文字列は、関数によって生成されるすべての監査メッセージに表示されます。

[in, optional] ObjectName

作成またはアクセスされるオブジェクトの名前を指定する null で終わる文字列へのポインター。 この文字列は、関数によって生成されるすべての監査メッセージに表示されます。

[in] SecurityDescriptor

アクセスがチェックされる SECURITY_DESCRIPTOR 構造体へのポインター。

[in] DesiredAccess

チェックへのアクセス権を指定するアクセス マスク。 このマスクは、汎用アクセス権を含めずに MapGenericMask 関数によってマップされている必要があります。

このパラメーターがMAXIMUM_ALLOWED場合、この関数は GrantedAccess アクセス マスクを設定して、セキュリティ記述子がクライアントに許可する最大アクセス権を示します。

[in] GenericMapping

アクセスがチェックされるオブジェクトに関連付けられている GENERIC_MAPPING 構造体へのポインター。

[in] ObjectCreation

アクセスが許可されたときに呼び出し元のアプリケーションが新しいオブジェクトを作成するかどうかを決定するフラグを指定します。 TRUE の値は、アプリケーションが新しいオブジェクトを作成することを示します。 FALSE の値は、アプリケーションが既存のオブジェクトを開きます。

[out] GrantedAccess

付与されたアクセス権を受け取るアクセス マスク へのポインター。 AccessStatusFALSE に設定されている場合、関数はアクセス マスクを 0 に設定します。 関数が失敗した場合、アクセス マスクは設定されません。

[out] AccessStatus

アクセス チェックの結果を受け取る変数へのポインター。 セキュリティ記述子でクライアントに対する要求されたアクセス権が許可されている場合、 AccessStatusTRUE に設定されます。 それ以外の場合、 AccessStatusFALSE に設定されます。

[out] pfGenerateOnClose

関数が戻るときに監査生成ルーチンによって設定されたフラグへのポインター。 オブジェクト ハンドルが閉じられたときに、このフラグを ObjectCloseAuditAlarm 関数に渡します。

戻り値

関数が成功すると、戻り値は 0 以外になります。

関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。

解説

詳細については、「 AccessCheck のしくみ の概要」を参照してください。

AccessCheckAndAuditAlarm 関数では、呼び出し元プロセスでSE_AUDIT_NAME特権が有効になっている必要があります。 この特権のテストは、スレッドの偽装 トークン ではなく、呼び出し元プロセスのプライマリ トークン に対して実行されます。

呼び出し元のスレッドがクライアントを偽装していない場合、 AccessCheckAndAuditAlarm 関数は失敗します。

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー securitybaseapi.h (Windows.h を含む)
Library Advapi32.lib
[DLL] Advapi32.dll

こちらもご覧ください

AccessCheck
クライアント/サーバー Access Control
クライアント/サーバー Access Control関数
GENERIC_MAPPING
AccessCheck のしくみ
MakeAbsoluteSD
MapGenericMask
ObjectCloseAuditAlarm
ObjectOpenAuditAlarm
ObjectPrivilegeAuditAlarm
PrivilegeCheck
PrivilegedServiceAuditAlarm
SECURITY_DESCRIPTOR