次の方法で共有


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 に準拠していることを確認する必要があります。

メジャー コード

IRP_MJ_DEVICE_CONTROL

[入力バッファー]

現在構成されているすべてのルーティング エントリを含むSECURE_ELEMENT_ROUTING_TABLE

出力バッファー

なし

ステータス ブロック

Irp->要求が成功した場合、IoStatus.StatusSTATUS_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