形式
#include <sys/_Elmarm4.h>
arm_error_t arm_init_transaction_type(
/* [in] */ arm_appl_id_t *application_id,
/* [in] */ arm_string_t transaction_name,
/* [in] */ arm_int32_t flags,
/* [in] */ arm_buffer4_t *buffer4,
/* [in/out] */ arm_appl_id_t *transaction_type_id
);
機能説明
arm_init_transaction_type() は、トランザクションのクラス・タイプを定義する
ために使用します。
トランザクション・タイプは、アプリケーションによって実行されるトランザクシ
ョンのタイプを表します。
トランザクション・タイプは、そのタイプのトランザクション
が arm_start_transaction() および arm_stop_transaction() を使って測定される前
に定義されている必要があります。
トランザクション・タイプは、1 つのトランザクション・タイプ名と
最大 20 個のトランザクション・プロパティー名のリストで構成されます。
複数のトランザクション・タイプが同じトランザクション・タイプ名と異なる
トランザクション・プロパティー名を持つことができます。
トランザクション・タイプの固有性を決定するのは、名前の完全セットです。
トランザクション・タイプは、アプリケーションの初期化のときに定義するように
お勧めします。
普通は処理のカテゴリーがほとんどないように、eWLM は、トランザクション・
タイプは幅広いカテゴリーの処理を表すものと期待します。
詳細なトランザクション識別は、トランザクション・レベルのプロパティーを使っ
て行ってください。
トランザクション・タイプは、必要に応じて、アプリケーションのトラン
ザクション処理中に定義することもできます。
ARM インプリメンテーションは、重複を避けるために、同じタイプの既
存の定義があるかどうかを検査する必要があります。
これはメインライン処理にさらなるオーバーヘッドを追加するので、この方法はお
勧めできません。
トランザクション・クラス・タイプの定義は、そのアプリケーションの存続中 (す
なわち、アプリケーションが arm_end_application() を呼び出すまで、またはその処理
が終了するまで) 有効のままです。
arm_init_application_type() は、ARM 2.0 の arm_getid 関数と等価の ARM 4.0
版です。
- application_id
- arm_init_application() に渡されたり、そこから戻されたりする、このトラ
ンザクション・タイプに関連付けられたアプリケーションのためのハンドル。
- transaction_name
- トランザクション・タイプを識別するための名前。
最大長は、ヌル・ストリング終了文字を含めて 128 字です。
eWLM ポリシー内の種別規則は、トランザクション・タイプ名を使ってトランザクシ
ョンを eWLM サービス・クラスとレポート・クラスに分類することができます。
- flags
- 1 つのフラグが定義されます。
ARM_INIT_FLAG_ID_INPUT は、トランザクション・タイプ ID が入力であるのか (フラグ
は 1)、または出力であるのか (フラグはゼロ) を示します。
下記のトランザクション・タイプ ID パラメーターを参照してください。
他のフラグ・ビットはすべて予約されており、ゼロでなければなりません。
- buffer4
- 追加データが入っている 1 つ以上のサブバッファーを識別するバッファーへのポインター。
追加データが必要ない場合は、ヌル値を指定できます。
- transaction_type_id
- トランザクション・タイプを識別する 64 ビット・ハンドルへのポインター。
アプリケーションがそれ自身のハンドルを定義して、それを入力として渡すことも
できるし、eWLM がハンドルを生成して、それを戻すようにもできます。
その選択は、フラグ ARM_INIT_FLAG_ID_INPUT で示されます。
このハンドルは arm_start_transaction() に渡す必要があります。
ハンドルは、呼び出し元のプロセス内で定義されるだけです。
eWLM がハンドルを生成するように依頼された場合で、トランザクション・タイプ名と
トランザクション・プロパティー名 (ユーザー・データ・バッファーの中) が前
の arm_init_transaction_type() 呼び出しで渡された名前と一致する場合、戻されるハ
ンドル値は前の呼び出しのときと同じです。
戻り値
正常に実行されると、arm_init_application は ARM_RC_SUCCESS を戻します。
失敗した場合、エラーを示す errno と戻りコードが設定されます。考えられるすべての戻りコードのリストについては、
戻りコードを参照してください。失敗すると、application_id は、後で他のインターフェースの呼び出しに使用でき
るダミー値に設定されます。
このようなインターフェースは、application_id にはダミー値が入っていることを認識し、何も処理を実行せずに戻ります。
- エラー・コード
- 説明
- EFAULT
- このサービスのパラメーターに、呼び出し元がアクセスできないアドレスが
入っていました。
- EINVAL
- このサービスのパラメーターに、無効な値が入っていました。
- EMVSARMERROR
- ARM エラーが発生しました。
具体的なエラーの戻りコードを参照してください。
- EPERM
- 呼び出し元に適切な特権がありません。戻りコードは ARM_RC_AUTH_ERROR に設定されます。
- EMVSSAF2ERR
- セキュリティー・プロダクトでエラーが発生しました。