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 つによって設定された値と同じ値であることを意図しています。 アクセス チェック関数の例としては、 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 |
ヘッダー | winbase.h (Windows.h を含む) |
Library | Advapi32.lib |
[DLL] | Advapi32.dll |