AccessCheckAndAuditAlarmA 関数 (winbase.h)
AccessCheckAndAuditAlarm 関数は、セキュリティ記述子が、呼び出し元スレッドによって偽装されているクライアントに対して、指定されたアクセス権のセットを許可するかどうかを決定します。 セキュリティ記述子に、クライアントに適用される ACE を含む SACL がある場合、この関数は必要な監査メッセージをセキュリティ イベント ログに生成します。
アラームは現在サポートされていません。
構文
BOOL AccessCheckAndAuditAlarmA(
[in] LPCSTR SubsystemName,
[in, optional] LPVOID HandleId,
[in] LPSTR ObjectTypeName,
[in, optional] LPSTR 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
付与されたアクセス権を受け取るアクセス マスク へのポインター。 AccessStatus が FALSE に設定されている場合、関数はアクセス マスクを 0 に設定します。 関数が失敗した場合、アクセス マスクは設定されません。
[out] AccessStatus
アクセス チェックの結果を受け取る変数へのポインター。 セキュリティ記述子でクライアントに対する要求されたアクセス権が許可されている場合、 AccessStatus は TRUE に設定されます。 それ以外の場合、 AccessStatus は FALSE に設定されます。
[out] pfGenerateOnClose
関数が戻るときに監査生成ルーチンによって設定されたフラグへのポインター。 オブジェクト ハンドルが閉じられると、このフラグを ObjectCloseAuditAlarm 関数に渡します。
戻り値
関数が成功すると、戻り値は 0 以外になります。
関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。
解説
詳細については、「 AccessCheck のしくみ の概要」を参照してください。
AccessCheckAndAuditAlarm 関数では、呼び出し元プロセスでSE_AUDIT_NAME特権を有効にする必要があります。 この特権のテストは、スレッドの偽装 トークン ではなく、呼び出し元プロセスのプライマリ トークン に対して実行されます。
呼び出し元のスレッドがクライアントを偽装していない場合、 AccessCheckAndAuditAlarm 関数は失敗します。
要件
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | winbase.h (Windows.h を含む) |
Library | Advapi32.lib |
[DLL] | Advapi32.dll |