IOCTL_NFCSE_SET_ROUTING_TABLE IOCTL (nfcsedev.h)
NFC コントローラーのリッスン モード ルーティング テーブルを構成します。 呼び出し元は、1 回の呼び出しで完全なリッスン モードルーティング情報を送信する必要があることに注意してください。 呼び出し元は、ルーティング テーブルが 4.2.5.1 で定義されている cbMaxRoutingTableSize 値より小さいことを確認する必要があります。 合計サイズは、NFC NCI 標準秒 6.3.2 に従って計算され、AID ベースのルートの数 x 4 + cbAid の合計 + テクノロジ ベースのルートの数 x 5 + プロトコル ベースのルートの数 x 5 に等しくなります。 呼び出し元は、テクノロジベースおよびプロトコルベースのルートの値が NCI NFC 仕様 sec 6.3.2 に準拠していることを確認する必要があります。
メジャー コード
[入力バッファー]
現在構成されているすべてのルーティング エントリを含むSECURE_ELEMENT_ROUTING_TABLE。
出力バッファー
なし
ステータス ブロック
Irp->要求が成功した場合、IoStatus.Status は STATUS_SUCCESS に設定されます。 考えられるエラー コードは次のとおりです。
リターン コード | 説明 |
---|---|
STATUS_INVALID_BUFFER_SIZE | 指定されたバッファーが NFC コントローラーのMAX_ROUTING_TABLE_SIZEよりも大きかった。 |
STATUS_FEATURE_NOT_SUPPORTED | NFCC では、リッスン モードのルーティング構成はサポートされていません。 |
STATUS_INVALID_PARAMETER | この状態は、出力バッファーが 0 以外の場合、またはテクノロジまたはプロトコルに使用される値が NFC NCI 仕様 sec 6.3.2 に準拠している場合、または重複する AID が使用されている場合、または現在の NFC コントローラー機能でサポートされていないルーティング モードを使用している場合に返されます。 |
STATUS_INVALID_DEVICE_STATE | このコードは、相対名 'SEManage' 以外のハンドルで IOCTL が送信された場合に返されます。 |
注釈
ドライバーが準拠する必要がある要件を次に示します。
- この IOCTL は、"SEManage" 相対ファイル名を持つハンドルで送信されます。それ以外の場合は、ドライバーがSTATUS_INVALID_DEVICE_STATEで完了する必要があります。
- ドライバーには、RF テクノロジ A、B、F、ISO-DEP プロトコルをルーティングする初期の既定のリッスン モード ルーティング テーブル エントリが存在する場合は、UICC SE にルーティングされます。 これらのルーティング エントリは、後でデバイス ホストによって開始される新しいリッスン モード ルーティング テーブル構成によってオーバーライドされる可能性があります。
- ドライバーは、プロトコル NFC-DEP が常にデバイス ホストにマップされていることを確認する必要があります。 呼び出し元がこれを指定しない場合でも、ドライバーは暗黙的にこの規則を追加する必要があります。
- NFCC が RF 検出状態のときにこの IOCTL が発行された場合、ドライバーは NFCC を RF アイドル状態にし、ルーティング テーブルを構成し、RF 検出を再起動する必要があります。
要件
要件 | 値 |
---|---|
Header | nfcsedev.h |