"不揮発性半導体記憶装置と、前記不揮発性半導体記憶装置を制御する制御部と、前記制御部に接続された作業エリアとしてのメモリと、前記制御部により制御される無線通信機能部と、前記メモリに設けられ、前記無線通信機能部の無線通信機能を定義可能な一定のデータ長を有する複数ページで構成された拡張レジスタと、を具備し、前記制御部は、前記拡張レジスタを前記一定のデータ長単位でリードする第1のコマンドと、前記拡張レジスタを前記一定のデータ長単位でライトする第2のコマンドとを処理し、前記拡張レジスタは、特定ページに前記無線通信機能の種別及び制御可能なドライバを特定するための情報と、前記無線通信機能が割り当てられる拡張レジスタ上の場所を示すアドレス情報が記録され、前記特定ページ以外のページ又は領域に前記無線通信機能の情報が記録されることを特徴とするメモリシステム。前記第1、第2のコマンドは、リード又はライト対象のデータ長が前記ブロック長より大きい場合、前記第1、第2のコマンドを複数回発行されることを特徴とする請求項1記載のメモリシステム。前記第2のコマンドは、1つのコマンドに対応して複数のデータを転送することを特徴とする請求項2記載のメモリシステム。前記拡張レジスタの前記特定のページは、無線通信機能用レジスタが記録された前記特定ページ以外の少なくとも1つのページアドレスが記録されることを特徴とする請求項1記載のメモリシステム。前記拡張レジスタの前記特定のページは、無線通信機能用レジスタが記録された前記特定ページ以外の1つのページ内のアドレスが記録されることを特徴とする請求項1記載のメモリシステム。前記拡張レジスタの前記特定のページ以外のページは、無線通信機能用レジスタ内のデータのアドレスが記録されることを特徴とする請求項1記載のメモリシステム。前記拡張レジスタの前記特定のページ以外の第1のページは、無線通信機能用のコマンドと引数が記録され、このコマンドと引数に対応するデータが、無線通信機能用レジスタに記録されることを特徴とする請求項1記載のメモリシステム。本実施形態は、種々の無線通信機能を制御することが可能なメモリシステムを提供しようとするものである。本実施形態によれば、メモリシステムは、不揮発性半導体記憶装置と、制御部と、メモリと、無線通信機能部と、拡張レジスタとを含んでいる。制御部は、第1のコマンドと、第2のコマンドとを処理する。制御部は、不揮発性半導体記憶装置を制御する。メモリは、制御部に接続された作業エリアである。無線通信機能部は、制御部により制御される。拡張レジスタは、メモリに設けられ、無線通信機能部の無線通信機能を定義可能な一定のデータ長を有する複数ページで構成されている。制御部は、前記拡張レジスタを前記一定のデータ長単位でリードする第1のコマンドと、前記拡張レジスタを前記一定のデータ長単位でライトする第2のコマンドとを処理し、前記拡張レジスタは、特定ページに前記無線通信機能の種別及び制御可能なドライバを特定するための情報と、前記無線通信機能が割り当てられる拡張レジスタ上の場所を示すアドレス情報が記録され、前記特定ページ以外のページ又は領域に前記無線通信機能の情報が記録される。近年、各種電子機器特に携帯型ディジタル機器間で、無線通信によるデータ通信が可能とされている。各種電子機器としては、パーソナルコンピュータや、例えばPDAPersonalDigitalAssistantと呼ばれる携帯情報端末、携帯電話、携帯型オーディオ機器、デジタルビデオカメラ、あるいはデジタルスチルカメラなどが含まれる。以下の説明では、デジタルビデオカメラ及びデジタルスチルカメラを総称してデジタルカメラと記載する場合がある。これら電子機器間で、無線通信によりデータ通信が可能であれば、ケーブルによる接続が不要となるため利便性を向上できる。特に、無線LANLocalAreaNetworkシステムの普及に伴い、パーソナルコンピュータや、組み込み機器応用のみならず、デジタルカメラなどでメモリとして使用されるSDカードにおいても無線LANシステムが導入されるようになってきている。無線LAN通信機能を備えていないデジタルカメラなどの電子機器でこのような機能を実現するため、SDカードは、フラッシュメモリの他、ホストと物理的に接続するためのインターフェース、アンテナ、高周波処理部無線信号の送受信を行う処理部、ベースバンド処理部ベースバンド信号を処理する処理部などの構成要素を実装する必要がある。このような無線LAN機能を備えたSDカードにおいて、無線LAN機能を制御するための手順は、SDカードベンダーの実装に依存しているため、一意に定まっていない。さらに、制御手順をどのように実装するかが課題となっている。また、無線通信機能を備えたSDカードには、SDカードベンダーによって異なる方式の通信機能が備えられることも考えられる。この場合、ホストは、SDカードにどのような機能が備えられているかを知る手段がなければ、SDカードの機能を用いることが出来ない。そこで、本実施形態は、例えばデジタルカメラなどにおいて広くメモリとして用いられているSDカードに関して、本来のメモリ以外の拡張機能を把握するための手段を提示する。さらに、本来のメモリ以外の機能に対する制御手順を提示する。特に、SDメモリカードのコマンド体系において、無線LANなどを制御することを可能とする。これによって、デジタルカメラなどの電子機器と親和性の高い無線通信機能を搭載したSDカードを提供する。このため、本実施形態は、SDカード内に、複数ページにより構成される拡張レジスタExtensionRegisterを設け、この拡張レジスタをSDカードのコマンド仕様の1つであるコマンドCMD48、CMD49を用いて、リード又はライト可能とする。CMD48は、対象とするレジスタからデータをブロック単位で読み出すためのコマンドであり、CMD49は、対象とするレジスタにデータをブロック単位で書き込むコマンドである。拡張レジスタは、例えばSDカードが有する機能を示すためのページと、SDカードが有する通信機能を制御するためのページと、通信対象のデータの受け渡しに用いるページとを有している。実施形態以下、実施の形態について、図面を参照して説明する。図1は、本実施形態に係るメモリシステムを概略的に示している。メモリシステムは、例えばSDカードのようなメモリデバイス11と、ホスト20により構成される。メモリデバイス11はSDカードとも言う。また、ホスト20はホストデバイスとも言う。尚、メモリデバイス11は必ずしもカード形状を備えている必要はなく、ホストデバイスに対して挿抜不可能な態様で実装されていても良い。メモリデバイス11は、ホスト20に接続されたときに電源供給を受けて動作し、ホスト20からのアクセスに応じた処理を行う。このメモリデバイス11は、カードコントローラ11aを有している。カードコントローラ11aは、例えばホストインターフェースI/F12、CPU13、ROMReadonlyMemory14、RAMRandomAccessMemory15、バッファ16、無線通信インターフェースI/F17a、メモリインターフェースI/F17bにより構成されている。これらは、バスにより接続されている。メモリインターフェース17bには、例えばNANDフラッシュメモリ18が接続されている。無線通信インターフェース17aには、拡張機能部としての無線LAN信号処理部19aが接続されている。この無線LAN信号処理部19aには、高周波信号を送受信するアンテナATaが接続されている。尚、拡張機能部は、無線LAN信号処理部19aに限らず、その他の無線通信信号処理部19b、及びこの無線通信信号処理部19bに接続されたアンテナATbなどを増設し、マルチファンクションのSDカードを構成することが可能である。無線LAN信号処理部19aは、例えばWi-Fi登録商標接続認定されたIEEE802.11bgnによる無線通信機能を制御し、無線通信信号処理部19bは、例えばTransferJet登録商標による近接無線通信機能、Bluetooth登録商標による近接無線通信機能などを制御する。ホストインターフェースI/F12は、カードコントローラ11aとホスト20との間のインターフェース処理を行う。一方、無線通信インターフェース17aは、無線LAN信号処理部19aや無線通信信号処理部19bとの間のインターフェース処理を行う。メモリインターフェース17bは、カードコントローラ11aとNANDフラッシュメモリ18との間のインターフェース処理を行う。CPU13は、メモリデバイス11全体の動作を司るものである。このCPU13を制御するプログラムは、ROM14の中に格納されているファームウェア制御プログラム等を用いるか、あるいは、RAM115上にロードして所定の処理が実行される。すなわち、CPU13は、各種のテーブルや後述する拡張レジスタをRAM18上に作成したり、ホスト20からライト書き込みコマンド、リード読み出しコマンド、イレース消去コマンドを受けてNANDフラッシュメモリ18上の領域をアクセスしたり、バッファ16を介してデータ転送処理を制御したりする。ROM14は、CPU13により使用される制御プログラムなどのファームウェアを格納する。RAM15は、CPU13の作業エリアとして使用され、制御プログラムや各種のテーブルや後述する拡張レジスタを記憶する。バッファ16は、ホスト20から送られてくるデータを、例えばNANDフラッシュメモリ18へ書き込む際、一定量のデータ例えば1ページ分を一時的に記憶したり、NANDフラッシュメモリ18から読み出されたデータをホスト20へ送り出す際、一定量のデータを一時的に記憶したりする。またバッファ16を介することにより、SDバスインターフェースとバックエンドを非同期に制御することができる。NANDフラッシュメモリ18は、例えば積層ゲート構造のメモリセル、又はMONOS構造のメモリセルにより構成されている。無線LAN信号処理部19aでは、無線LANの信号処理が行われる。無線LAN信号処理部19aは、無線通信I/F17aを介して制御される。ホスト20は、例えばデジタルカメラや携帯電話、パーソナルコンピュータなどが適用可能である。ホスト20は、ホストコントローラ21、CPU22、ROM23、RAM24、例えばハードディスク25により構成されている。これらはバスにより接続されている。ホスト20が無線LAN通信機能を備えていない場合、本実施形態に係るメモリデバイス11を接続することで、他の電子機器との無線LAN通信が可能となる。CPU22は、ホスト20全体を制御する。ROM23は、CPU22の動作に必要なファームウェアを記憶している。RAM24は、例えばCPU22の作業領域として使用されるが、CPU22が実行可能なプログラムもここにロードされ実行される。ハードディスク25は、各種データを保持する。ホストコントローラ21は、メモリデバイス11が接続された状態において、メモリデバイス11とのインターフェース処理を行う。さらに、CPU22の指示に従って、後述する各種コマンドを発行する。ファームウェアの構成図2は、メモリデバイス11のROM14に記憶されたファームウェアの機能構成の一例を示している。これらの機能はコントローラ11aを構成するCPU13等の各ハードウェアとの組み合わせにより実現されるものである。ファームウェアは、例えばコマンド処理部14a、フラッシュメモリ制御部14b、拡張レジスタ処理部14c、機能処理プログラム14dにより構成されている。拡張レジスタ処理部14cは、メモリデバイス11が起動された際、RAM15内に拡張レジスタ31を生成する。この拡張レジスタ31は、仮想レジスタであり、拡張機能を定義可能とされている。拡張レジスタの構成図2に示すように、拡張レジスタ31は、例えば8ページにより構成されている、1ページは、512バイトにより構成されている。512バイトの拡張レジスタをバイト単位にアクセスするため、最低9ビットのアドレスが必要となり、8ページアクセスするために、最低3ビットのアドレスが必要となる。合計12ビットのアドレスにより、拡張レジスタの全空間がアクセス可能となる。512バイト単位とする理由は、多数のSDメモリカードホストコントローラが、1ブロック=512バイトを単位としてリード/ライト転送を行う構成になっているためである。SDIOカード対応のホストコントローラであれば、1バイト単位のリード/ライトが可能であるが、全てのホストコントローラがこれをサポートしているわけではない。大多数のホストコントローラで拡張機能を制御できるようにするためには、512バイト単位のアクセスが行えると都合が良い。8ページページ0~ページ7の内、ページ0は、拡張機能のプラグアンドプレイを行うために情報フィールドを記録しておくための領域である。ページ1~ページ7は、拡張機能の情報が記録される。すなわち、例えばページ1には、通信機能を制御するための情報が記録され、ページ2には、通信対象のデータの受け渡しのための情報が記録される。ホスト20は、メモリデバイス11が有する機能を示すためのページ0に記載された情報から、メモリデバイス11が有する通信機能を制御するためのページ、通信対象のデータの受け渡しに用いるページ、がどのページであるのかを把握することができる。情報フィールドの詳細については後述する。拡張レジスタのリード/ライトは、以下に定義される専用のリード/ライトコマンドが用いられる。これらのコマンドは、拡張レジスタをリード/ライトする第1の動作モードと、データポートを構成する第2の動作モードを有している。また、これらのコマンドは、SDカードのコマンド仕様として定義される。拡張レジスタのリードコマンドCMD48図3は、拡張レジスタのリードコマンドCMD48のフィールド構成の一例を示している。Sは、コマンドのスタートビットを示し、Tは転送方向を示すビットであり、indexは、コマンド番号を示している。RSレジスタセレクトは拡張レジスタ31内のページを示し、OFSは選択されたページ内におけるデータの位置ページの先頭からのオフセットを示している。3ビットのRSと、9ビットのOFSで、512バイトの拡張レジスタ8ページ分の空間をバイト単位に指定することができる。具体的には、選択された拡張レジスタ内のリード開始位置がRSとOFSにより指定される。LENはデータ長を示している。9ビットのLENフィールドにより、512バイトの拡張レジスタ内の読み出しに必要な有効なデータ長が指定される。CRC7は、巡回冗長検査cyclicredundancycheckコードを示し、Eは、コマンドのエンドビットを示している。rsvは、予備のビットを示している。拡張レジスタのリードコマンド、第1の動作モード図4は、第1の動作モードによる拡張レジスタのリード動作の例を示している。図4に示すように、メモリデバイス11は、ホスト20からコマンドCMD48を受け取ると、レスポンスR1をホスト20に返し、その後、拡張レジスタ31から512バイトのデータブロックを読み出す。具他的には、コマンドCMD48の引数で、拡張レジスタのページと、ページ内の読み出すべきデータの位置が、RSとOFSで指定され、データ長がLENで指定される。このようにして指定された拡張レジスタ内のデータが、512バイトのデータブロックの先頭にセットされ、読み出される。512バイトのデータブロックのうち、LENで指定されたデータ長を超えるデータは、無効データとなる。データブロックの最後にはCRCコードが付加され、正しくデータが受け取れたかをチェックすることが可能とされている。有効データが先頭から配置されているため、ホスト20は、有効データを探すために、データシフトなどの操作を行う必要がない。拡張レジスタのリードコマンド、第2の動作モード図5は、第2の動作モードによるデータポートリードの動作の例を示している。メモリデバイス11は、このコマンドを受け取ると、レスポンスR1を返し、その後に512バイトのデータブロックを返す。コマンドの引数RS,OFSにより、拡張レジスタの選択されたページ内の位置が指定される。データポートは、複数バイト割り当てることは可能であるが、1バイトで十分であるので、図5ではLEN=0の場合のデータポートの例が示されている。すなわち、データポートは、拡張レジスタマップ上において、1バイトのアドレスを占有するだけで良い。このデータポートに割り当てられたデバイスから1ブロック512バイト単位のデータをリードすることができる。すなわち、1回当たり、1ブロック512バイト単位のデータをリードすることができる。この読み出されたデータは、例えばバッファ16に保持され、ホスト20によって読み出される。続いて同じデータポートをリードすると、続きの512バイトのデータを読み出すことができる。データポートから読み出すデータを何処から取ってくるかは、拡張機能の仕様によって自由に定義ができる。データポート制御は、例えば、拡張レジスタ上に制御レジスタを定義して制御することができる。512バイトのデータブロックの最後にCRCコードが付加され、正しくデータが受け取れたか否かがチェック可能とされている。拡張レジスタのライトコマンドCMD49図6は、拡張レジスタのライトコマンドの一例を示している。ライトコマンドCMD49において、リードコマンドCMD48と同一部分には同一符号を付している。ライトコマンドとリードコマンドは、indexにより区別される。3ビットのRSと、9ビットのOFSにより、拡張レジスタのページと選択されたページ内のデータの位置が指定される。9ビットのLENフィールドにより、512バイトの拡張レジスタに書き込むデータ長が指定される。したがって、512バイト内の任意のデータ長のデータを拡張レジスタの任意のページと場所に書き込むことが可能である。ライトコマンドCMD49は、コマンドの引数の中にマスクレジスタが設けられている。すなわち、Maskは、8ビット長のマスクレジスタを示している。このマスクレジスタにより、1バイトのデータのライトにおいて、ビット単位のオペレーションが可能となり、特定のビットにのみデータを書き込むことが可能となる。このため、1バイト内のビットオペレーションであれば、リードモディファイライトを行う必要がない。マスクレジスタは、データ長が1バイトのとき、すなわち、LEN=0のとき有効となる。マスクレジスタMaskのデータが1のビットは、データが書き込まれ、マスクレジスタMaskのデータが0のビットは、既にセットされた値が保存される。すなわち、図7aに示すようなデータを保持している拡張レジスタを仮定した場合において、マスクレジスタのデータが、図7bに示すようである場合、ライトコマンドが実行されることにより、図7cに示すように、マスクレジスタのデータが1のビットはデータが書き込まれ、データが0のビットは、元のデータが保持される。このため、リードモディファイライトを行うことなく、所要のビットのみデータを書き換えることが可能となる。xで示す部分が、新しいデータが書き込まれたビットを示す。また、より長いマスクデータが別な手段によって供給できれば、LEN>1でもマスクライトが可能であるが、図6の例では、コマンド引数にマスクデータを割り当てているため、8ビットとしている。拡張レジスタのライトコマンド、第1の動作モード図8は、第1の動作モードによる拡張レジスタのライト動作の例を示している。メモリデバイス11は、このコマンドCMD49を受け取ると、レスポンスR1を返し、その後、512バイトのデータブロックを受け取る。メモリデバイス11は、データブロックが正しく受け取れたかどうかを示すCRCコードをホスト20に返す。その後、このコマンドの処理が終了するまでビジーを返し、ホスト20が次のコマンドを発行できるタイミングを知らせる。データブロックは、バッファ16に保持されている。コマンド処理において、コマンドの引数RS、OFSにより、拡張レジスタ内のページと位置が指定され、LENによりデータ長が指定される。バッファ16に保持されたデータブロックのうち、先頭からLENで指定して長さのデータが拡張レジスタに書き込まれる。LENで指定されたデータ長を超えるデータブロック中のデータは無効データとして破棄される。有効データをデータブロックの先頭から配置することにより、ホストシステムは有効データをデータブロックの途中に配置する操作が不要となる。拡張レジスタのライトコマンド、第2の動作モード図9は、第2の動作モードによるライトデータポートの動作の例を示している。メモリデバイス11は、このコマンドCMD49を受け取ると、レスポンスR1を返し、その後、512バイトのデータブロックを受け取る。メモリデバイス11は、データブロックが正しく受け取れたかどうかを示すCRCコードをホストに返す。その後、このコマンド処理が終わるまでビジーを返し、ホスト20が次のコマンドを発行できるタイミングを知らせる。データブロックは、バッファ16に保持されている。コマンド処理において、コマンドの引数RS、OFSにより、拡張レジスタ内のページと位置が指定され、LENにより1バイトLEN=0のデータポートが指定される。データポートは、複数バイト割り当てることは可能であるが、1バイトで十分であるので、図9ではLEN=0の場合のデータポート例が示されている。データポートは、拡張レジスタマップ上において、1バイトのアドレスを占有するだけでよい。このデータポートに、バッファ16に保持された1ブロック512バイト単位のデータをある割り当てたデバイスにライトすることができる。すなわち、1回当たり、1ブロックのデータをライトすることができる。続いて同じデータポートをライトすると、続く512バイトのデータを割り当てたデバイスに書き込むことができる。データポートのデータを何処に渡すかは、拡張機能の仕様によって自由に定義ができる。データポート制御は、例えば、拡張レジスタ上に制御レジスタを定義して制御することができる。ページ0の情報フィールドの使用例図10は、拡張レジスタ31のページ0に示された情報フィールドの例を示している。この情報フィールドにより、ホスト20が拡張機能を制御するドライバを特定できるようにすることにより、拡張機能を追加した場合において、ホストシステムが容易に拡張機能を使えることができ、プラグアンドプレイを実現することができる。ストラクチャレビジョンストラクチャレビジョンは、拡張レジスタ31のページ0のフォーマットを定義するレビジョンである。デバイス情報フィールドに新しい情報を追加した場合、ストラクチャレビジョンを更新することにより、どのバージョンの情報フィールドを保持しているかを示す。以前のバージョンのホストドライバは、新しいフィールドを無視する。データ長データ長は、ページ0に記録されている有効データ長を示している。拡張機能数=N拡張機能数は、デバイスが何個の拡張機能をサポートしているかを示している。ホストドライバは、起動時に、サポートしている機能数だけ繰り返し、各拡張機能用のドライバがインストールされているかどうかを調べる。デバイスの情報領域デバイスの情報領域には、N個のデバイスデバイス1~デバイスNの情報を記録することができる。各デバイスの情報を次に示す。デバイス1機能識別コードデバイス1機能識別コードにおいて、このコードが設定してある場合、標準ドライバ用を用いることができることを示す。ホストシステムのOSが標準ドライバをサポートしている場合、専用ドイバをインストールすることなく、このデバイスが使用できる。専用ドライバがインストールされている場合は、そちらの使用を優先する。非標準の機能は0を設定する。この場合は、専用ドライバによってのみこの機能は制御される。デバイス1製造者識別情報、デバイス1機能識別情報デバイス1製造者識別情報、デバイス1機能識別情報は、専用ドライバを特定するための情報である。ホストドライバは、これらの情報をもとにデバイス1の専用ドライバがインストールされているかどうかを探す。識別し易いように、例えばASCII文字列で記載される。機能識別情報は、デバイスの型番、レビジョンなどが記載される。次デバイスの先頭アドレス次デバイスの先頭アドレスは、次のデバイス情報が記載されているページ0内のアドレスを示している。ホストシステムがこのデバイスをサポートしていない場合、このデバイスは使用できないため、次のデバイスがチェックされる。これ以降のフィールドは可変長のため、この位置に定義している。デバイス1アドレスポインタ1~X、レングスフィールド1~Xデバイス1アドレスポインタ1~X、レングスフィールド1~Xは、ひとつの機能に複数の拡張レジスタ領域を定義できることを示している。それぞれのアドレスとレングスを下記に列挙する。デバイス1アドレスポインタ1開始アドレス、レングス1デバイス1が使用する拡張レジスタの第1領域。拡張レジスタのページ1~7の空間内の先頭アドレスと、使用する拡張レジスタ領域の大きさを示している。すなわち、1つのデバイスに、1つ又は複数の拡張レジスタ領域を割り付けることができ、アドレスポインタは、ページ0以外の任意の拡張領域の場所開始アドレスを示している。レングスは、ポインタを先頭アドレスとした拡張レジスタを占有する大きさを示している。デバイス1アドレスポインタ2開始アドレス、レングス2デバイス1に割り当てられた拡張レジスタ内の第2領域の位置と領域の大きさを示している。これにより、例えば標準ドライバは、第1領域のみで制御するが、専用ドライバは、第1領域と第2領域を用いて効率良く制御することを可能にするなどの応用が可能となる。デバイス1アドレスポインタX開始アドレス、レングスXデバイス1に割り当てられた第X領域の位置と領域の大きさを示している。このように、拡張レジスタ内に複数の領域を定義できる。各領域はオーバーラップしないように配置される。レングス情報によりオーバーラップがあるかどうかをチェックすることができる。追加フィールドが必要になった場合、これ以降に追加定義していく。新しいフィールドが認識できないホストは、認識可能なフィールドまで読み出し、追加フィールドは無視する。上記の次デバイスの先頭アドレスフィールドによりスキップすることができる。無線LAN対応SDカード図11は、無線通信機能を有したメモリデバイスSDカード11の使用例を示している。SDカード11は、ホストとしての例えばデジタルカメラ51、52や、サーバー53、パーソナルコンピュータ54、携帯電話55に装着される。無線通信機能を有したSDカード11は、デジタルカメラ51とともに使用することにより、写真データを無線通信ネットワーク上で他のカメラ52に送信したり、他のカメラ52から受信したりすることが可能である。また、無線通信ネットワークを介して例えば外部のサーバー53に接続し、写真データをデジタルカメラ51からサーバー53に転送することも可能である。さらに、無線通信ネットワークを介して例えばパーソナルコンピュータ54や携帯電話55などの機器に接続し、写真データをデジタルカメラ51からこれらパーソナルコンピュータ54や携帯電話55に転送することができる。図12は、SDカード11が有するインターフェース機能を示している。無線通信機能を有したSDカード11は、メモリデバイス11を制御するホストデバイスとしての例えばデジタルカメラ51とのインターフェースとなるインターフェース機能と、デジタルカメラ51と他の電子機器、例えばカメラ52や、サーバー53、パーソナルコンピュータ54、テレビ56、プリンタ57などと無線LAN接続を行うネットワークインターフェースの機能を有している。前述したホストインターフェースカードインターフェース12は、SDAで規格化されたSDSpecificationsPart1とSDSpecificationsPart2に従って、SDカード11内のデータにFAT32経由でアクセス読み書きする機能を有するとともに、SDカード11内の拡張レジスタ31にアクセスする機能を有している。以下、無線通信機能を有するSDカードにおいて拡張レジスタを利用する場合について説明する。また、無線通信規格としてIEEE802.11b/g/nに準拠する場合を想定して、この様な拡張レジスタをWi-FiSDレジスタと記載する場合がある。ここでWi-FiSDレジスタのアクセスには、前述したリードコマンドCMD48とライトコマンドCMD49が用いられる。リードコマンドCMD48は、前述したように、対象となる拡張レジスタからデータをブロック単位で読み出すコマンドであり、ライトコマンドCMD49は対象となる拡張レジスタにデータをブロック単位で書き込むコマンドである。本実施形態において、例えばホスト20がSDカード11に対して、無線通信機能を有するSDカード特有のコマンドを発行する。具体的には、無線通信機能を有するSDカード特有の拡張レジスタにデータを書き込むために専用のライトコマンドCMD49を用いることを特徴とする。または、無線通信機能を有するSDカード特有の拡張レジスタからデータを読み出すために専用のリードコマンドCMD48を用いることを特徴とする。無線通信インターフェース17aは、物理層にIEEE802.11b/g/nを、ネットワーク層にIPv4やIPv6を、トランスポート層にTCPを、プレゼンテーション層にSSL/TLSを、アプリケーション層にHTTPやFTPをサポートすることを想定している。さらに、家庭内機器との通信のためDLNADigitalLivingNetworkAllianceの機能を有する場合もある。メモリデバイス11が2つのインターフェースを持つことにより、デジタルカメラで作成した写真データJPEGやRAWフォーマットや動画データMPEG-2TSやMP4フォーマットを、HTTPプロトコルをサポートするサーバーや機器に対して送信、又は受信することが可能になる。さらに、DLNAをサポートするサーバーや機器により、写真や動画の再生が可能となるとともに、印刷を行うことも可能となる。また、写真データや動画データだけでなく、ホストデバイスが作成するデータXMLデータやテキストデータを追加して送ることにより、ホストデバイスはサーバーや周辺機器と認証作業を行ったり、メタデータの送受信を行ったりすることが可能となる。図13は、無線通信機能を有するSDカードとホストデバイスの構成例を示している。これ以降、無線通信規格としてIEEE802.11b/g/nに準拠し、Wi-Fi接続認定されたSDカード以下、Wi-FiSDカード11と記載する場合があるを例に挙げて説明する。前述したように、ホスト20は、Wi-FiSDカード11を制御するためのホストコントローラ21を有し、前記カードインターフェースに従って、SDAで規格化されたSDSpecificationsPart1のコマンドと、Wi-FiSDカード特有の制御を行うためのCMD48とCMD49のコマンドを発行することが可能である。Wi-FiSDカード11は、カードコントローラ11a、NANDメモリモジュールNANDフラッシュメモリ18、Wi-Fiネットワークモジュール無線LAN信号処理部19a19cを有し、ホストコントローラ21から発行されたコマンドに従い動作する。無線通信機能を有していない一般的なSDカードにおいて、カードコントローラ11aは、NANDメモリモジュール18にアクセスし、データの読み出し、書き込みを行うことが可能である。本実施形態におけるWi-FiSDカードは、NANDメモリモジュール18へのアクセス読み書きと、Wi-Fiネットワークモジュール19cへのアクセス、さらに、NANDメモリモジュール18に記録されたデータをWi-Fiネットワークモジュール19cへ内部転送を行う。もしくはWi-Fiネットワークモジュール19cのデータをNANDメモリモジュール18に内部転送を行うことが可能である。これにより、例えばNANDメモリモジュール18に記録された写真データをホスト20の介在なしにWi-Fiネットワークモジュール19cが外部に送信することができる。つまり、ホスト20はWi-Fiネットワークモジュール19cの複雑な制御を行う必要がない。さらに、写真データがカードインターフェースを経由せず内部転送されるため、転送速度を上げることができる。例えば、写真データの内部転送をカードコントローラ11a内部のDMADirectMemoryAccessレジスタで制御すれば、ホスト20とWi-FiSDカード11とは独立して動作することが可能である。また、Wi-Fiネットワークモジュール19cのステータス情報や、外部ネットワークのサーバーからダウンロードしたデータなどを、ホスト20が逐次管理することなく、自動的にNANDメモリモジュール18に直接記録することが可能である。図14は、Wi-FiSDカードとホストデバイスの別の構成例を示す。図14は、図13と異なり、Wi-FiSDカード11自身は無線通信機能を有さず、カードコントローラ11bとNANDメモリモジュール18で構成されている。また、ホスト20は、無線通信機能を有している。すなわち、ホスト20は、ホストコントローラ21と、Wi-Fiネットワークモジュール19cと、リードコマンドCMD48とライトコマンドCMD49を分離するためのカードコントローラセレクタ25とを有している。この構成は、デジタルカメラなどのホストデバイス自身が無線通信機能を有する場合において、図13と同じ制御方法でWi-Fiネットワークモジュール19cの制御が可能である。図15は、リードコマンドCMD48とライトコマンドCMD49でアクセスする拡張レジスタの例を示している。前述したように、拡張レジスタのページ0は、ページ1以降のページのインデックスとなっており、ホスト20は、ページ0を読むことにより、カードがどのような拡張機能を有しているか、そのサポートされている拡張機能の規格のバージョン情報やプロファイル情報オプショナル機能のうちどの機能がサポートされているか、その拡張機能を制御するためのドライバ情報どのメーカーから提供されているドライバか、ドライバのバージョンが何であるかなどを知ることができる。例えば、あるカードがWi-Fi機能とともに、Bluetooth機能を有しているのであれば、Wi-Fi機能にアクセスするためのレジスタをページ1に割り当て、Bluetooth機能にアクセスするためのレジスタを例えばページ2に割り当てる。ホスト20は必要に応じてページ1、2にアクセスし、それぞれの機能を同時に用いることが可能である。これにより、Wi-Fi機能を用いて外部のサーバーからデータをダウンロードしてカードに一旦記録し、Bluetooth機能を用いて周辺機器に転送して再生や表示するといった動作を実現することができる。図16は拡張レジスタをWi-FiSDカードに用いた場合の例を示す。Wi-FiSDレジスタは、その用途に応じて5種類の拡張レジスタで構成されている。Wi-FiSDカードコマンドライトレジスタは、書き込み専用のレジスタでありホスト20からWi-FiSDカード11に対してコマンドを発行するときにアクセスされる。Wi-FiSDカードステータスレジスタは、読み込み専用のレジスタであり、ホスト20がWi-FiSDカード11のステータス情報を取得するときにアクセスされる。Wi-FiSDカードレスポンスデータレジスタは、読み込み専用のレジスタであり、ホスト20が外部サーバーからWi-FiSDカード11にダウンロードしたデータHTTPレスポンスデータを取得するときにアクセスされる。Wi-FiSDカードIDリストレジスタは、読み込み専用のレジスタであり、そのWi-FiSDカード11に接続している若しくは接続をリクエストしている他のデバイスのIDのリストをホスト20が取得するときにアクセスされる。Wi-FiSDカードSSIDヒストリレジスタは、読み込み専用のレジスタであり、Wi-FiSDカード11が過去に接続したSSID若しくは接続しなかったが接続するようにリクエストされたSSIDのリストをホスト20が取得するときにアクセスされる。また、図示しないが、Wi-FiSDカードコマンドレスポンスレジスタは、読み込み専用のレジスタであり、ホスト20が発行したコマンドに対し、Wi-FiSDカード11がそれを受け取ることができたかどうかを、ホスト20が確認するときにアクセスされる。更に、図示しないが、Wi-FiSDカードコマンドプロセスレジスタは、読み込み専用のレジスタであり、ホスト20が発行したコマンドに対し、Wi-FiSDカードがそれに対する処理の進捗処理前か、処理中か、処理後成功したか、処理後失敗したかを、ホスト20が確認するときにアクセスされる。本実施形態は、これらのWi-FiSDレジスタを拡張レジスタのページにそれぞれ割り当てるケースを説明する。先ず、ホスト20は、リードコマンドCMD48を用いて拡張レジスタのページ0を読み、Wi-Fi機能がSDカードに実装されているか、それぞれの機能を用いるために何ページをアクセスすればよいかを確認する。ここでは、ページ番号i、j、k、l、mとWi-FiSDレジスタの略称WIFISDCR、WIFISDSR、WIFISDRD、WIFISDIL、WIFISDSHのペアがページ0に記録されている。ホスト20がWi-FiSDカード11に対してコマンドを発行する場合、コマンド発行用のレジスタであるWi-FiSDカードコマンドライトレジスタに対してライトコマンドCMD49にて書き込みを行う。このとき、ページ0の情報から当該レジスタはページiにあることが分かっているため、CMD49の引数としてページiが指定される。同様にホスト20がWi-FiSDカードからステータス情報等を取得する場合、データ取得のためのレジスタであるWi-FiSDカードステータスレジスタ、Wi-FiSDカードレスポンスデータレジスタ、Wi-FiSDカードIDヒストリレジスタ、Wi-FiSDカードSSIDヒストリレジスタのいずれかより、リードコマンドCMD48にてデータを読み出す。このとき、CMD48の引数としては、それぞれのレジスタに対応するページ番号であるj、k、l、mが指定される。ここで、本実施形態において、書き込み用レジスタと読み込み用レジスタを別のページに割り当てているが、それぞれのレジスタは書き込み専用と読み込み専用となっているため、同じページに割り当てることも可能である。図17は、Wi-FiSDレジスタが拡張レジスタのページに割り当てられた場合において、512バイト拡張レジスタのページ当たりの最大サイズを超えるデータを読み書きするときの例を示している。拡張レジスタのページ当たりの最大サイズは512バイトと限られている。しかし、ホスト20がリードコマンドCMD48、又はライトコマンドCMD49を連続して発行することにより、512バイトを超えるデータの読み込み、又は書き込みが可能である。例えばWi-FiSDカードコマンドライトレジスタに512バイトを超えるデータを書き込む場合、ホスト20はCMD49によって最初の512バイトのデータをレジスタに書き込む。具体的には、コマンドCMD49のレジスタセレクトRSでページを指定し、オフセットOFSは0とし、データ長LENで512バイトを指定する。つまり、先ず、RSを1、OFSを0、LENを512バイトとして、512バイトのデータをWi-FiSDカードコマンドライトレジスタに書き込む。次に、RSを2、OFSを0、LENを512バイトとして、512バイトのデータをWi-FiSDカードコマンドライトレジスタに書き込む。このような動作が順次繰り返される。ここで、最初の512バイトのデータにはWi-FiSDカードコマンドライトレジスタに書き込むデータのデータサイズNwが記録されている。このため、Wi-FiSDカード11は、このデータを読み込むことにより、ホスト20がライトコマンドCMD49をceilNw/512回発行することが分かる。尚、ceilは小数点以下切り上げを示す。つまり、例えばデータ長が513バイトであれば、コマンドを2回発行することを意味する。一方、Wi-FiSDカードレスポンスデータレジスタから512バイトを超のデータを読み込む場合、ホスト20はリードコマンドCMD48によって最初の512バイトのデータをレジスタから繰り返し読み込む。CMD48の引数の設定方法は、CMD49と同様である。ここで、最初の512バイトのデータにはWi-FiSDカードレスポンスデータレジスタから読み込むデータのデータサイズNrが記録されている。このため、ホスト20は、このデータを読み込むことにより、ホスト20がリードコマンドCMD48をceilNr/512回発行すべきことが分かる。例えばホスト20が読み込み、又は書き込みを途中で、不具合が生じた場合、処理を中止する。この場合、ホスト20が、処理を中止するためのAbortコマンドを発行したり、Wi-FiSDカード11に設定されているタイムアウト時間によって、タイムアウト処理が行われるのを待ったりすることにより、処理の中止を行うことができる。図18は、拡張レジスタをWi-FiSDレジスタに用いたときの別の例を示している。例えば無線通信のステータスをホスト20から拡張レジスタに転送したり、拡張レジスタのデータをSDレジスタに転送したりする場合、512バイトのデータ全てを転送する必要がなく、特定の短いデータ長のデータを転送すればよいことがある。図18は、このような場合におけるデータ転送の例を示すものである。具体的には、例えばリードコマンドCMD48、ライトコマンドCMD49の引数RSにより拡張レジスタのページを指定し、さらにOFSにより指定されたページのオフセットアドレスが指定される。この例において、5種類のWi-FiSDレジスタは、拡張レジスタのある1ページhにおいて、それぞれ1バイト分のアドレスi、j、k、l、mに割り当てられる。先ず、ホスト20は、リードコマンドCMD48を用いて拡張レジスタのページ0を読み、Wi-FiSD機能がカードに実装されているか、それぞれの機能を用いるために何ページをアクセスすればよいかを確認する。ここでは、ページ番号hオフセットアドレスi、j、k、l、mとWi-FiSDレジスタの略称WIFISDCR、WIFISDSR、WIFISDRD、WIFISDIL、WIFISDSHのペアがページ0に記録されている。ホスト20がWi-FiSDカード11に対してコマンドを発行する場合、コマンド発行用のレジスタであるWi-FiSDカードコマンドライトレジスタに対して、ライトコマンドCMD49にて書き込みを行う。このとき、ページ0の情報から当該レジスタはページhのオフセットアドレスiにあることが分かるため、CMD49の引数としてRS=h、OFS=iが指定される。一方、ホスト20がWi-FiSDカード11からステータス情報等を取得する場合、リードコマンドCMD48により、データ取得のためのレジスタであるWi-FiSDカードステータスレジスタ、Wi-FiSDカードレスポンスデータレジスタ、Wi-FiSDカードIDリストレジスタ、Wi-FiSDカードSSIDヒストリレジスタのいずれかからデータが読み込まれる。このとき、リードコマンドCMD48の引数としては、それぞれのレジスタに対応するページ番号とオフセットアドレスであるh、j、h、k、h、l、h、mが指定される。すなわち、RSがhで、OFSがj、k、l、mの何れかに設定される。図18に示す実施形態は、拡張レジスタの構成とWi-FiSDレジスタの構成が対応しないが、拡張レジスタの消費量が少ないという利点がある。また、図18において、書き込み用レジスタWi-FiSDカードコマンドライトレジスタと読み込み用レジスタWi-FiSDカードステータスレジスタ、Wi-FiSDカードレスポンスデータレジスタ、Wi-FiSDカードIDリストレジスタ、Wi-FiSDカードSSIDヒストリレジスタを別のオフセットアドレスに割り当てているが、それぞれのレジスタは書き込み専用と読み込み専用であるため、同じオフセットアドレスに割り当てることも可能である。図19は、Wi-FiSDレジスタがあるページのアドレスにそれぞれ割り当てられた場合において、512バイトを超えるデータ、つまり、拡張レジスタのページ当たりの最大サイズを超えるデータを読み書きするときの例を示している。図17に示す例と同様に、拡張レジスタに転送できるデータは512バイトと限られているが、ホスト20が、CMD48又はCMD49を連続して発行することにより、512バイトを超えるデータの読み込み、又は書き込みが可能である。この場合、拡張レジスタのページh内に記録されたデータは、Wi-FiSDカードコマンドライトレジスタや、Wi-FiSDカードレスポンスデータレジスタ内に記録された512バイト毎のデータの、例えばインデックスとしての機能を有している。このため、ライトコマンドCMD49の引数により、拡張レジスタのページh、オフセットOFSはiをLENを512バイトとして指定することにより、Wi-FiSDカードコマンドライトレジスタに512バイトのデータを書き込むことができ、このライトコマンドCMD49を連続的に発行することにより、Wi-FiSDカードコマンドライトレジスタに512バイトのデータを連続的に書き込むことができる。また、リードコマンドCMD48の引数により、拡張レジスタのページh、オフセットOFSはjをLENを512バイトとして指定することにより、Wi-FiSDカードレスポンスデータレジスタ内の512バイトのデータを読み出すことができ、このリードコマンドCMD48を連続的に発行することにより、Wi-FiSDカードレスポンスデータレジスタから512バイトのデータを連続的に読み出すことができる。ここで、最初の512バイトのデータにはWi-FiSDカードコマンドライトレジスタに書き込むデータのデータサイズNwが記録されている。このため、SDカードは、このデータを読み込むことにより、ホスト20がライトコマンドCMD49をceilNw/512回発行することが分かる。尚、ceilは小数点以下切り上げを示す。つまり、例えばデータ長が513バイトであれば、コマンドを2回発行することを意味する。一方、Wi-FiSDカードレスポンスデータレジスタから512バイトを超のデータを読み込む場合、ホスト20はリードコマンドCMD48によって最初の512バイトのデータをレジスタから繰り返し読み込む。CMD48の引数の設定方法は、CMD49と同様である。ここで、最初の512バイトのデータにはWi-FiSDカードレスポンスデータレジスタから読み込むデータのデータサイズNrが記録されている。このため、ホスト20は、このデータを読み込むことにより、ホストデ20がリードコマンドCMD48をceilNr/512回発行すべきことが分かる。例えばホスト20が読み込み、又は書き込みを行っている途中で、不具合が生じた場合、処理を中止する。この場合、ホスト20が、処理を中止するためのAbortコマンドを発行したり、Wi-FiSDカード11に設定されているタイムアウト時間によって、タイムアウト処理が行われるのを待ったりすることにより、処理の中止を行うことができる。図20は、拡張レジスタをWi-FiSDレジスタに用いた場合におけるさらに他の例を示す図である。図20は、1つのライトコマンドCMD49により、発行されたデータに無線通信を制御するための複数のWi-FiSDカードコマンドが含まれる場合や、1つのリードコマンドCMD48により発行されたデータに複数のステータスが含まれる場合を示している。複数のWi-FiSDカードコマンドの発行は、例えば複数のファイルの転送を連続的に行うときなどに用いられる。Wi-FiSDカードコマンドライトレジスタは、例えばコマンドレジスタ部と、アーギュメントレジスタ部引数レジスタ部とから構成され、Wi-FiSDカードレスポンスデータレジスタは、例えばレスポンスレジスタ部と、レスポンスデータレジスタ部とから構成されている。Wi-FiSDカードコマンドライトレジスタにおいて、コマンドレジスタ部には、コマンド毎にコマンド発行用のレジスタが割り当てられており、書き込まれたコマンドのIDに応じて、対応するレジスタに値が書き込まれる。アーギュメントレジスタ部には、引数毎に引数データ書き込み用レジスタが割り当てられており、書き込まれたコマンドのIDの内容に応じて、引数データが対応するレジスタに書き込まれる。例えば、ホストデバイス20からCMD49i、xが発行された場合、iは、拡張レジスタのページ番号、xはコマンドIDを示し、コマンドID=xと、それに対応する引数の数mの引数データが拡張レジスタに書き込まれ、Wi-FiSDカードコマンドライトレジスタ内の対応するコマンドレジスタとアーギュメントレジスタに値が書き込まれる。尚、xは対応するコマンドIDのレジスタのオフセットアドレスと定義してもよい。一方、Wi-FiSDカードレスポンスデータレジスタにおいて、レスポンスステータスレジスタ部には、コマンドに毎にステータス情報用のレジスタが割り当てられており、Wi-FiSDカードコマンドライトレジスタに書き込まれたコマンドのIDに応じて、対応するステータス情報用のレジスタから値が読み込まれる。レスポンスデータレジスタ部には、コマンドID毎にレスポンスデータ用のレジスタが割り当てられ、書き込まれたコマンドのIDの内容に応じて、レスポンスデータが対応するレジスタから読み込まれる。ホスト20から例えばCMD48j、yが発行された場合、jはページ番号、yはコマンドIDを示し、コマンドID=yに対応するステータス情報と、レスポンスデータが、Wi-FiSDカードデータレジスタのレスポンスステータスレジスタとレスポンスデータレジスタから、拡張レジスタを経由して、ホスト20により読み込出される。尚、yは対応するコマンドIDのレジスタのオフセットアドレスと定義してもよい。上記図20に示す実施形態は、Wi-FiSDレジスタの値が対応する機能や処理に一対一に割り当てられている。このため、レジスタの内容を解釈する処理を経ずに効率的な処理を行うことが可能である。以降、図18と図19を用いて説明したWi-FiSDレジスタがあるページのアドレスにそれぞれ割り当てられたケースを前提として、Wi-FiSDレジスタの詳細を説明するが、他の実施形態にも適用可能である。図20に示す実施形態によれば、1つのコマンドCMD49又はCMD48により、複数のWi-FiSDカードコマンドなどのデータを転送することができるため、複数データを転送するために、複数回コマンドCMD49又はCMD48を発行する必要がない。このため、効率良くデータを転送でき、高速な処理が可能である。図21は、拡張レジスタがWi-FiSDカード用に用いられる場合における拡張レジスタを示している。図21において、WiFiSDCardIdentifierは、拡張レジスタがWi-FiSDカードに用いられることを示す情報であり、文字列WIFISD00が記録されている。WiFiSDCardSpecificationVersionは、このWi-FiSDカードがサポートするWi-FiSDカード規格のバージョンであり、例えばVer10をサポートするのであれば16進数0x0100が記録されている。WiFiSDCardProfileIndicatorは、このWi-FiSDカードがサポートする機能を示すための情報である。例えば、図39に示すWi-FiSDカード機能のうち、このWi-Fiカードがどのアプリケーションを使うことができるかを示す。ホストは最初にこの情報を取得した後、カードがサポートする機能のみを実行する必要がある。VendorUniqueIDは、このカードを作成したベンダーのIDの文字列が記録される。ホストはこのIDを参照することにより、カードベンダーを知ることができ、カードベンダー独自の追加機能が実装されているので、ホストがその機能を使うことができることを知ることができる。VendorUniqueFieldは、カードベンダーが独自の情報を記録することができ、カードベンダー独自の追加機能のうちいずれの機能が実装されているか等の情報を記録することができる。CommandWriteRegisterPortは、ホストデバイスからカードに対してコマンドを発行するためのWi-FiSDカードコマンドライトレジスタにアクセスするためのデータポートである。StatusRegisterPortは、ホストデバイスがカードのステータス情報を取得するためのWi-FiSDカードステータスレジスタにアクセスするためのデータポートである。ResponseDataRegisterPortは、ホストデバイスがカードからの外部サーバーからダウンロードしたデータHTTPレスポンスデータを取得するためのWi-FiSDカードレスポンスデータレジスタにアクセスするためのデータポートである。IDListRegisterPortは、そのカードに接続している若しくは接続をリクエストしている他のデバイスのIDのリストをホストデバイスが取得するためのWi-FiSDカードIDリストレジスタにアクセスするためのデータポートである。SSIDHistoryRegisterPortは、カードが過去に接続したSSID若しくは接続しなかったが接続するようにリクエストされたSSIDのリストをホストデバイスが取得するためWi-FiSDカードSSIDヒストリレジスタにアクセスするためのデータポートである。図22は、Wi-FiSDカードコマンドライトレジスタの構成例を示している。WiFiSDCardRegisterIdentifierは、このレジスタがWi-FiSDカードコマンドライトレジスタであることを示す情報であり、文字列WIFISDCRが記録されている。SizeofWiFiSDCardRegisterは、レジスタのサイズを表す情報であり、カードはこの情報を参照して、ライトコマンドCMD49が何回発行されて、どれだけのサイズのデータを受信すべきかが分かる。NumberofWiFiSDCommandInformationは、1回のWi-FiSDカードコマンドライトレジスタへの書き込みにより、何個のWiFiSDコマンドが発行されるかを示す情報である。ホストが指定された個数分だけコマンドをリスト化することにより、カードは列挙されたコマンドの順次処理を行う。更にカードはコマンドの種類に応じて、最も効率の良い順序に並べ替えたり、並列実行が可能なものに関しては並列処理を行ったりすることも可能である。例えば、複数のサーバーにデータをアップロードする際には、負荷がかかっていないサーバーに対する処理を優先したり、カードの転送速度が転送先のサーバーのネットワーク転送速度よりも十分大きい場合は、複数のサーバーへの転送を同時に実行したりすることなどが可能になる。WiFiSDCommandInformationは、それぞれWiFiSDcommandid、WiFiSDcommandsequenceid、TotalNumberofArguments、LengthofArgument、Argumentにより構成されている。WiFiSDcommandidは、発行するWiFiSDコマンドの種類を表し、図23乃至図25のWiFiSDコマンドのうちの一つが記録される。WiFiSDcommandsequenceidは、発行されるWi-FiSDコマンドを一つ一つ識別区別するためにホストが割り振る値であり、ホストは発行した一つ一つのコマンドの状況をWiFiSDカードステータスレジスタにより知ることができる。NumberofArgumentsは、発行するコマンドの引数の個数であり、LengthofArgumentは引数のデータの大きさを示し、Argumentは引数のデータを示す。図23乃至図25は、Wi-FiSDカードコマンドライトレジスタに書き込むコマンドの一覧を示している。ScanWiFiコマンドは、引数なしのコマンドで構成される。コマンドを実行すると、ホストがカードに対し、接続可能な無線LANをスキャンするようにリクエストし、その結果は、図43に示すSSIDLISTファイルに保存することができる。SetSSIDコマンドは、SSID名を示すssid、パスフレーズを示すpassphrase、認証方法を示すauthenticationの3つの引数により構成される。ホストは、ServerUploadApplicationとP2PApplicationのために、接続する無線LANのSSID名とパスフレーズを設定するか、もしくはP2PRestrictedServerApplicationとP2PServerApplicationのために、構築する無線LANのSSID名とパスフレーズと認証方法を設定することができる。なお、この設定はStartApplicationコマンドを実行して無線LANに接続、または無線LANを構成するときに用いられる。なお、認証方式とは、ネットワークの認証方式とデータ暗号方式を示し、OpenSystemandnoencryption、OpenSystemandWEP、SharedKeyandWEP、WPAandTKIP、WPAandAES、WPAPSKandTKIP、WPAPSKandAES、WPA2andTKIP、WPA2andAES、WPA2PSKandTKIP、WPA2PSKandAESのいずれかがホストから選択される。SetCurrentTimeコマンドは、現在の日付を示すcurrentDate、現在の時刻を示すcurrentTimeの2つの引数から構成される。コマンドを実行すると、ホストが指定した現在日付と現在時刻がカードに設定することができる。カードに電力が常時供給されていない場合、カードには日付時刻情報を常時保持することが難しい。このとき、ホストからカードに日付時刻設定を行うことにより、カードは日付時刻情報を保持することができ、カードが作成するファイルなどの日付時刻情報が必要なデータに対し、現在の日付時刻を設定することができる。StartApplicationコマンドは、起動するアプリケーションを示すapplication、現在日付を示すcurrentDate、現在時刻を示すcurrentTimeの3つの引数から構成される。コマンドを実行すると、無線LANネットワークの設定に従い無線LANへの接続を行う、または無線LANの構築を行うことができる。次に、指定されたアプリケーションの起動を行うことができる。もし、SetWPSコマンドによってWPSの起動設定が行われていた場合、アプリケーション起動前の無線LANへの接続、または構成をWPSにより行う。もし、SetSSIDコマンドによってSSIDが設定されている場合は、その設定を用いて無線LANへの接続または構成を行う。もし、SetSSIDコマンドによってSSIDが設定されていない場合は、図32に示すカード中のSSIDHistoryに記録されている一つのSSIDを用いて無線LANへの接続または構成を行う。SetWPSコマンドは、WPS方式を示すmode、ピンコードを示すpinの2つの引数から構成される。コマンドを実行すると、カードは無線LAN接続や構成を行う際にWPSを用いることができる。ここでWPS方式がWPSwithPINの場合、設定されたピンコードを用いたピンコード認証を行い、WPSwithPBCの場合、プッシュボタン認証を行う。Abortコマンドは、図22に記載されたWiFiSDCommandSequenceIDを示すsequenceIDの1つの引数から構成される。コマンドを実行すると、既に実行されたコマンドのうち指定されたWiFiSDCommandSequenceIDをもつコマンドの処理を中断することができる。例えば、ユーザーがファイルをネットワーク内の機器やWebサーバーに対してアップロードやダウンロードを行っている際に、ユーザーが電源を切る等の理由で処理を中止する必要がある場合に用いることができる。Resetコマンドは、ステータス情報を示すstatusの1つの引数から構成される。ここで、ステータス情報とは、図26に記載されたMediaChange、SSIDListUpdate、FileListUpdate、IDListUpdate、ResponseDataUpdate等の情報のうちのいずれか1つを示している。コマンドが実行されると指定されたステータス情報をリセットして初期値に戻すことができる。例えば、MediaChangeは、カード中のファイルシステム情報が更新されたことを示すステータス情報であるが、ホストはホストデバイス内にキャッシュされたファイルシステム情報を更新可能な場合、このMediaChange情報を参照し、カードのファイルシステムが更新されていれば、カードのファイルシステム情報をホストデバイスのファイルシステム情報に反映する。このとき、再度MediaChange情報を参照することができるようResetコマンドを実行してMediaChange情報を初期値に戻し、再度カードのファイルシステム情報が更新されることを知ることができる。Removeコマンドは、SSID名を示すssidの1つの引数から構成される。コマンドが実行されると指定されたSSIDをカード内に記録されているSSIDHistoryレジスタから削除することができる。例えば、SSIDHistoryレジスタに記録されているSSIDのうち、既に使用しなくなったようなSSIDが残っている場合、カードがこのSSIDに接続を行ってしまうため、無駄な接続処理が発生する。同様にSSIDHistoryレジスタに記録されているSSIDのうち、ユーザーが接続することを意図しないSSIDが存在する場合、カードがこのSSIDに接続を行ってしまうため、他のSSIDに接続を行うことができない。以上の場合、Removeコマンドを実行することにより、意図しないSSIDに接続することを避けることができる。EndApplicationコマンドは引数なしで構成されるコマンドである。コマンドが実行されると現在実行しているアプリケーションを終了し、カードは初期状態に戻ることができる。SendHttpMessageコマンドは、送信先のサーバーを示すhostname、送信するHTTPリクエストメッセージが記録されているファイルのファイルパスとファイル名を示すmessageFileNameの2つの引数により構成される。コマンドを実行する前に、HTTPリクエストライン、HTTPメッセージヘッダ、HTTPメッセージボディから構成されるHTTPリクエストメッセージをファイルに記録する。ホストがコマンドを実行すると、カードは指定された送信先のサーバーに対し、前記ファイルをHTTPリクエストメッセージとして送信する。送信先のサーバーはカードからのHTTPリクエストメッセージに対し、HTTPレスポンスメッセージを返信する。カードは、HTTPレスポンスライン、HTTPメッセージヘッダ、HTTPメッセージボディから構成される前記HTTPレスポンスメッセージを受信し、ファイルとしてカードに記録する。このとき、ファイルは、図43におけるRESPONSEディレクトリの下にWiFiSDcommandsequenceidをファイル名として記録される。WiFiSDcommandsequenceidは、ホストが任意にコマンドごとに異なるように指定可能な値であり、たとえ他のSendHttpMessageを同時に実行してもHTTPレスポンスメッセージのファイルを区別して受信することができる。更に、HTTPレスポンスメッセージに添付ファイルが含まれる場合は、カードはメッセージ内に記載されているMIMEタイプによる添付ファイルの種別を識別し、図43に示すMIMEタイプに応じたディレクトリの下にファイルとして記録する。このときHTTPレスポンスメッセージ内にファイル名の情報が含まれていれば、この情報をもとにファイルを記録する。以下に、HTTPリクエストメッセージを構成するファイルの内容の例を示す。――――――――――――――――――――――――――――――――――――――POSThogeHTTP11ContentTypetextplainUserAgentXXXXXXXXHosthogehogecomContentLength25THISISANEXAMPLE――――――――――――――――――――――――――――――――――――――SendHttpFileコマンドは、送信先のサーバーを示すhostname、送信するHTTPリクエストメッセージが記録されているファイルのファイルパスとファイル名を示すmessageFileName、送信するHTTPリクエストメッセージに添付するファイルのファイルパスとファイル名を示すappendFileNameの3つの引数から構成される。基本的な構成はSendHttpMessageコマンドと同様であるが、違いとしてHTTPリクエストメッセージ内の特定の文字列を、カードがHTTPリクエストメッセージの送信時に、添付するファイルの内容に置き換えることができる。このコマンドにより、カード内に既に記録されているファイルを加工することなしにHTTPリクエストメッセージとして送信することができる。例えば、カード内の写真データをWebサーバーにアップロードする場合に用いることができる。以下に、HTTPリクエストメッセージを構成するファイルの内容の例を示す。――――――――――――――――――――――――――――――――――――――POSThogeHTTP11ContentTypetextplainUserAgentXXXXXXXXHosthogehogecomContentLength1234567――――――――――――――――――――――――――――――――――――――上記のHTTPリクエストメッセージに対し、カードはを指定されたファイルに置き換えて下記のとおり送信する。――――――――――――――――――――――――――――――――――――――POSThogeHTTP11ContentTypeimagejpegUserAgentXXXXXXXXHosthogehogecomContentLength1234567――――――――――――――――――――――――――――――――――――――SendHttpSSLMessageコマンドは、送信先のサーバーを示すhostname、送信するHTTPリクエストメッセージが記録されているファイルのファイルパスとファイル名を示すmessageFileNameの2つの引数から構成される。基本的な構成はSendHttpMessageコマンドと同様であるが、違いとしてはこのコマンドにより、HTTPリクエストメッセージの送信とHTTPレスポンスメッセージの受信をSSLSecureSocketLayerやTLSTransportLayerSecurityで暗号化して行うことができる。SendHttpSSLFileコマンドは、送信先のサーバーを示すhostname、送信するHTTPリクエストメッセージが記録されているファイルのファイルパスとファイル名を示すmessageFileName、送信するHTTPリクエストメッセージに添付するファイルのファイルパスとファイル名を示すappendFileNameの3つの引数から構成される。基本的な構成はSendHttpFileコマンドと同様であるが、違いとしてはこのコマンドにより、HTTPリクエストメッセージの送信とHTTPレスポンスメッセージの受信をSSLSecureSocketLayerやTLSTransportLayerSecurityで暗号化して行うことができる。SendHttpMessageByRegisterコマンドは、送信先のサーバーを示すhostname、送信するHTTPリクエストメッセージを示すmessageの2つの引数から構成される。SendHttpMessageコマンドとは異なり、HTTPメッセージをカード内のファイルに書き込むのではなく、ホストがWi-FiSDカードコマンドライトレジスタに対して直接HTTPメッセージを書き込むことができる。例えばパスワードなどの情報を送信先のサーバーに送る際に、ファイルに書き込むことによってパスワードが外部に流出することを防ぐことができる。ホストがコマンドを実行すると、カードは指定された送信先のサーバーに対し、入力されたHTTPリクエストメッセージHTTPリクエストライン、HTTPメッセージヘッダ、HTTPメッセージボディから構成されるを送信する。送信先のサーバーはカードからのHTTPリクエストメッセージに対し、HTTPレスポンスメッセージを返信する。カードは、HTTPレスポンスライン、HTTPメッセージヘッダ、HTTPメッセージボディから構成される前記HTTPレスポンスメッセージを受信し、図30に示すResponseDataとしてWi-FiSDカードレスポンスデータレジスタに書き込む。ホストはリードコマンドCMD48により、Wi-FiSDカードレスポンスデータレジスタを読み込むことにより、実行したSendHttpMessageByRegisterに対するHTTPレスポンスメッセージを読み込むことができる。SendHttpFileByRegisterコマンドは、送信先のサーバーを示すhostname、送信するHTTPリクエストメッセージに添付するファイルのファイルパスとファイル名を示すappendFileName、送信するHTTPリクエストメッセージを示すmessageの3つの引数から構成される。基本的な構成はSendHttpMessageByRegisterコマンドと同様であるが、違いとしてHTTPリクエストメッセージ内の特定の文字列を、カードがHTTPリクエストメッセージの送信時に、添付するファイルの内容に置き換えることができる。SendHttpSSLMessageByRegisterコマンドは、送信先のサーバーを示すhostname、送信するHTTPリクエストメッセージを示すmessageの2つの引数により構成される。基本的な構成はSendHttpMessageByRegisterコマンドと同様であるが、違いとしてはこのコマンドにより、HTTPリクエストメッセージの送信とHTTPレスポンスメッセージの受信をSSLSecureSocketLayerやTLSTransportLayerSecurityで暗号化して行うことができる。SendHttpSSLFileコマンドは、送信先のサーバーを示すhostname、送信するHTTPリクエストメッセージに添付するファイルのファイルパスとファイル名を示すappendFileName、送信するHTTPリクエストメッセージを示すmessageの3つの引数から構成される。基本的な構成はSendHttpFileByRegisterコマンドと同様であるが、違いとしてはこのコマンドにより、HTTPリクエストメッセージの送信とHTTPレスポンスメッセージの受信をSSLSecureSocketLayerやTLSTransportLayerSecurityで暗号化して行うことができる。GetFileコマンドは、受信するファイルのファイルパスとファイル名を示すrequestFileName、受信したファイルの記録先のファイルパスとファイル名を示すSavefilenameの2つの引数により構成される。このコマンドはP2PClientアプリケーションにおいて実行され、受信者が、送信者から取得したFILELISTファイルに記載された取得可能なファイルのファイルパスとファイル名をもとに、送信者から所望のファイルを取得して指定したファイルに記録することができる。SelectIDコマンドは、アクセスを許可する受信者のIDを示すidの1つの引数から構成される。このコマンドは、P2PRestrictedServerアプリケーションにおいて実行される。P2PRestrictedServerアプリケーションは、受信者に対して、アクセスを許可するか拒否するかを決めるため受信者に対してIDの送信を要求する。受信者はアクセスの許可を取得するために受信者のIDを送信者に送り、送信者はアクセスを許可する受信者に対してのみ、このコマンドを実行する。このコマンドが実行されない受信者のIDは、送信者に対してアクセスを行うことができない。CancelIDコマンドは、アクセスを取り消す受信者のIDを示すidの1つの引数から構成される。このコマンドはP2PRestrictedServerアプリケーションにおいて実行される。P2PRestrictedServerアプリケーションにおいて、このコマンドを実行することにより、すでにアクセスが許可された受信者に対して、アクセスを取り消すことができる。SetMailAccountコマンドは、アカウント名を示すaccountName、そのパスワードを示すpasswordの2つの引数から構成される。このコマンドを実行することにより、メールサーバーに対して、メールアカウントの設定を行い、メールの送信と受信を行うことができる。SendSmtpMessageは、送信先のアドレスを示すaddress、送信するメールの本文が記録されているファイルのファイルパスとファイル名を示すmessageFileNameの2つの引数から構成される。このコマンドを実行することにより、カードは送信先のアドレスに対して、指定されたファイルをメールの本文として送信する。SendSmtpFileは、送信先のアドレスを示すaddress、送信するメールの本文が記録されているファイルのファイルパスとファイル名を示すmessageFileName、添付するファイルのファイルパスとファイル名を示すappendFileNameの3つの引数により構成される。このコマンドを実行することにより、カードは送信先のアドレスに対して、指定されたファイルをメールの本文とし、指定された添付ファイルに対しbase64変換を施し、バイナリーデータからテキストデータに変換してメールの本文の末尾に添付し、メールの送信を行う。SendSmtpMessageByRegisterは、送信先のアドレスを示すaddress、送信するメールの本文を示すmessageの2つの引数から構成される。このコマンドを実行することにより、カードは送信先のアドレスに対して、コマンドの引数として入力されたデータをメールの本文として送信する。SendSmtpFileByRegisterは、送信先のアドレスを示すaddress、添付するファイルのファイルパスとファイル名を示すappendFileName、送信するメールの本文を示すmessageの3つの引数により構成される。このコマンドを実行することにより、カードは送信先のアドレスに対して、コマンドの引数として入力されたデータをメールの本文とし、指定された添付ファイルに対しbase64変換を施し、バイナリーデータからテキストデータに変換してメールの本文の末尾に添付し、メールの送信を行う。ShowDeviceListは、ネットワーク内のデバイスリストを取得するためのコマンドである。PrintImageByDLNAは、ネットワーク内のデバイスに対して指定した画像を転送、印刷するためのコマンドである。DisplayImageByDLNAは、ネットワーク内のデバイスに対して指定した画像を転送、表示するためのコマンドである。PlayVideoByDLNAは、ネットワーク内のデバイスに対して指定したビデオを転送、再生するためのコマンドである。StopVideoByDLNAは、ネットワーク内のデバイスに対して指定したビデオを転送、再生停止するためのコマンドである。PauseOnVideoByDLNAは、ネットワーク内のデバイスに対して指定したビデオを転送、再生一時停止するためのコマンドである。PauseOffPlayVideoByDLNAは、ネットワーク内のデバイスに対して指定したビデオを転送、再生一時停止解除するためのコマンドである。SeekVideoByDLNAは、ネットワーク内のデバイスに対して指定したビデオを転送したい箇所から再生するためのコマンドである。FastForwardVideoByDLNAは、ネットワーク内のデバイスに対して指定したビデオを転送、早送り再生するためのコマンドである。SlowForwardVideoByDLNAは、ネットワーク内のデバイスに対して指定したビデオを転送、スロー再生するためのコマンドである。FastBackwardVideoByDLNAは、ネットワーク内のデバイスに対して指定したビデオを転送、巻き戻し再生するためのコマンドである。SlowBackwardVideoByDLNAは、ネットワーク内のデバイスに対して指定したビデオを転送、逆スロー再生するためのコマンドである。StreamingDownloadVideoByDLNAは、ネットワーク内のデバイスに対して指定したビデオを転送、再生しながら記録するためのコマンドである。SendFileByDLNAは、ネットワーク内のデバイスに対して指定したファイルを転送するためのコマンドである。SelectFileByDLNAは、ネットワーク内のデバイスに対して指定したファイルを公開するためのコマンドである。CancelFileByDLNAは、ネットワーク内のデバイスに対して指定したファイルを非公開するためのコマンドである。すでに公開しているファイルの公開を取り消すことができる。図26乃至図27は、Wi-FiSDカードステータスレジスタの構成例を示している。WiFiSDCardRegisterIdentifierは、このレジスタがWi-FiSDカードステータスレジスタであることを示すためのものであり、文字列WIFISDSRが記録されている。SizeofWiFiSDCardRegisterは、このレジスタのサイズを示しており、もしこの値が512より大きい場合は、ホストは一回のリードコマンドCMD48の実行ではレジスタの値を全て読み出すことができず、リードコマンドCMD48をceilレジスタサイズ/512回実行する必要がある。WLANは、無線LANの状態を示す情報であり、図42に示すInitial、Scan、Association、STA、APのいずれかの状態を示す。Applicationは、現在実行されているアプリケーションを示す情報であり、図41に示すInitialApplication、ServerUploadApplication、P2PServerApplication、P2PRestrictedServerApplication、P2PClientApplication、DLNAServerApplication、DLNAControllerApplicationのいずれかの状態を示す。SSIDは、現在接続している、もしくは構成している無線LANのSSID名を示す。無線LANに非接続状態の場合は、接続もしくは構成するときに用いる予定のSSID名を示している。NetworkAuthenticationは、現在無線LANに接続している、または無線LANを構成しているネットワークの認証方式とデータの暗号化方式を示し、OpenSystemandnoencryption、OpenSystemandWEP、SharedKeyandWEP、WPAandTKIP、WPAandAES、WPAPSKandTKIP、WPAPSKandAES、WPA2andTKIP、WPA2andAES、WPA2PSKandTKIP、WPA2PSKandAESのいずれかが選択される。HTTPProcessingは、カードがHTTPメッセージを送受信しているか、送受信していないかを示す。HTTPProgressは、HTTPメッセージの送受信の進捗度を百分率で示す。カードは送受信中のHTTPメッセージのヘッダーからメッセージのトータルサイズを知ることができ、現在、送受信済みのHTTPメッセージのサイズから進捗度を計算する。Dateは現在の日付を示す。Timeは現在の時刻を示す。MediaChangeは、カード内のNANDMemoryModuleのFAT情報が更新されているかどうかを示す情報である。もし更新されている場合において、ホストはホスト内にキャッシュしているFAT情報があるのであれば、カードのFAT情報をキャッシュし直す必要がある。なお、この情報はアプリケーションを終了するEndApplicationコマンドか、ステータス情報を初期化するResetコマンドを実行することにより初期値にすることが可能である。SSIDListUpdateは、SSIDListが更新されているかどうかを示す情報である。カードはScanWiFiコマンドが実行されると無線LANのスキャンを行い、SSIDLISTファイルを作成し、SSIDListUpdate情報を設定する。ホストはこの情報を参照することにより、カードのスキャン作業が終了したかどうかを知ることができる。なお、この情報はScanWiFiコマンドを再度実行するか、ステータス情報を初期化するResetコマンドを実行することにより初期値にすることが可能である。FileListUpdateは、FileListが更新されているかどうかを示す情報である。カードはP2PClientApplicationにおいて、受信側のアクセスが許可されれば、送信側からFileListを受信したものをFILELISTファイルとして記録し、FileListUpdate情報を設定する。ホストはこの情報を参照することにより、カードがFileListを取得したかどうかを知ることができる。この情報はアプリケーションを終了するEndApplicationコマンドか、ステータス情報を初期化するResetコマンドを実行することにより初期値にすることが可能である。ResponseDataUpdateは、ResponseDataが更新されているかどうかを示す情報である。ホストがSendHttpMessageByRegisterコマンド等のWi-FiSDカードレジスタ経由でのHTTPメッセージの送受信を実行し、カードがHTTPレスポンスメッセージを受信し、ResponseData情報を設定する。ホストはこの情報を参照することにより、カードがHTTPレスポンスメッセージを受信し、Wi-FiSDカードレスポンスデータレジスタによって参照できるようになったことを知ることができる。この情報はアプリケーションを終了するEndApplicationコマンドか、ステータス情報を初期化するResetコマンドを実行することにより初期値にすることが可能である。この情報は、ホストがリードコマンドCMD48により、全てのResponseDataが読み込みが完了したときか、ステータス情報を初期化するResetコマンドを実行することにより初期値にすることが可能である。SignalStrengthは、現在の信号強度を示す情報である。信号なし、レベル1、レベル2、レベル3、レベル4、レベル5のいずれかが設定される。MACAddressは、Wi-FiSDカードのMACアドレスを示す情報である。IDsは、Wi-FiSDカードのIDを示す情報である。この値は図33に示すユーザーが設定可能なCardConfigurationInformationのID情報に設定した値が反映される。DHCPEnabledは、DHCPを有効にしているかどうかを示す情報である。この値は図33に示すユーザーが設定可能なCardConfigurationInformationのDHCP情報に設定した値が反映される。IPAddressは、現在設定されているIPアドレスを示す情報である。SubnetMaskは、現在設定されているサブネットマスクを示す情報である。DefaultGatewayは、現在設定されているデフォルトゲートウェイを示す情報である。PreferredDNSServerは、現在設定されている優先DNSサーバーを示す情報である。AlternateDNSServerは、現在設定されている代替DNSサーバーを示す情報である。TimeOutは、カードがタイムアウト処理を行うまでの待ち時間を示す情報である。この値は図33に示すユーザーが設定可能なCardConfigurationInformationのTimeOut情報に設定した値が反映される。PowerSavemodeは、カードが省電力モードで動作しているかどうかを示す情報である。これは図33に示すユーザーが設定可能なCardConfigurationInformationのPowerSavemode情報に設定した値が反映されるが、省電力モードをサポートしないカードは常に通常モードに設定される。WPSmodeはWPSで無線LANの接続や構成を行う際のWPS方式を示す情報である。この情報はSetWPSコマンドにより設定可能であり、設定されたピンコードを用いたピンコード認証を行うWPSwithPIN、もしくはプッシュボタン認証を行うWPSwithPBCのいずれかが設定される。なお、SetWPSコマンドを実行しない場合は、WPSを使用しないモードに設定され、WPSを使わずに無線LAN接続や構成を行う。SelectedNumberofProxyServerは、図33に示すユーザー設定可能なCardConfigurationInformationに記録されているProxyServerNameのうち、どのプロキシサーバーを使っているかを示す情報である。これはCardConfigurationInformationのSelectedProxyServer情報に設定した値が反映される。CurrentMailAccountNameは現在のメールアカウント名を示す情報である。この情報はSetMailAccountコマンドにより設定された値が反映される。図28は、Wi-FiSDカードコマンドレスポンスステータスレジスタの構成例を示している。WiFiSDCardRegisterIdentifierは、このレジスタがWi-FiSDカードコマンドレスポンスステータスレジスタであることを示す情報であり、文字列WIFISDRSが記録されている。SizeofWiFiSDCardRegisterは、レジスタのサイズを表す情報であり、ホストはこの情報を参照して、リードコマンドCMD48を何回発行して、どれだけのサイズのデータを読み込むべきかが分かるNumberofWiFiSDCommandResponseStatusは、1回のWi-FiSDカードコマンドレスポンスステータスレジスタの読み込みにより、何個のWiFiSDCommandResponseStatusが取得できるかを示す情報である。WiFiSDCommandResponseStatusは、それぞれWiFiSDcommandid、WiFiSDcommandsequenceid、CommandResponseStatus、ReservedforVendorsforErrorStatusから構成されている。WiFiSDcommandidは、ホストがWi-FiSDカードコマンドライトレジスタ経由で発行したWiFiSDコマンドの種類を表し、図23、図24、図25のWiFiSDコマンドのうちの一つが記録される。WiFiSDcommandsequenceidは、ホストがコマンドを発行する際に、それぞれのコマンドを識別するためにホストが割り振った値であり、それと同じ値が設定される。CommandResponseStatusは、ホストが発行したコマンドの状態を示す情報であり、発行したコマンドをカードが問題なく受信できたか、何らかの問題があり受信できなかったか、という状態を示すものである。例えば、発行したコマンドの設定に問題があった場合、またはカード側が他のコマンド処理を行っている最中なので新しいコマンドを受け付けることができない場合などに、コマンドの受信できないことがありうる。ReservedforVendorsforErrorStatusは、エラーが発生した場合に、どのような理由でエラーが発生しているのかを示す情報である。図29は、Wi-FiSDカードコマンドプロセスステータスレジスタの構成例を示している。WiFiSDCardRegisterIdentifierは、このレジスタがWi-FiSDカードコマンドプロセスステータスレジスタであることを示す情報であり、文字列WIFISDPSが記録されている。SizeofWiFiSDCardRegisterは、レジスタのサイズを表す情報であり、ホストはこの情報を参照して、リードコマンドCMD48を何回発行して、どれだけのサイズのデータを読み込むべきかが分かるNumberofWiFiSDCommandProcessStatusは、1回のWi-FiSDカードコマンドプロセスステータスレジスタの読み込みにより、何個のCommandProcessStatusが取得できるかを示す情報である。WiFiSDCommandProcessStatusは、それぞれWiFiSDcommandid、WiFiSDcommandsequenceid、CommandProecssStatus、ReservedforVendorsforErrorStatusにより構成されている。WiFiSDcommandidは、ホストがWi-FiSDカードカードコマンドレジスタ経由で発行したWiFiSDコマンドの種類を表し、図23、図24、図25のWiFiSDコマンドのうちの一つが記録される。WiFiSDcommandsequenceidは、ホストがコマンドを発行する際に、それぞれのコマンドを識別するためにホストが割り振った値であり、それと同じ値が設定される。CommandProcessStatusは、ホストが発行したコマンドの状態を示す情報であり、コマンド処理前、コマンド処理中、コマンド処理成功、コマンド処理失敗のいずれかの状態を示すものである。ReservedforVendorsforErrorStatusは、エラーが発生した場合に、どのような理由でエラーが発生しているのかを示す情報である。図30は、Wi-FiSDカードレスポンスデータレジスタの構成例を示している。WiFiSDCardIdentifierは、このレジスタがWi-FiSDカードレスポンスデータレジスタであることを示す情報であり、文字列WIFISDRDが記録されている。SizeofWiFiSDCardRegisterは、レジスタのサイズを表す情報であり、ホストはこの情報を参照して、リードコマンドCMD48を何回発行して、どれだけのサイズのデータを読み込むべきかが分かるNumberofWiFiSDResponseDataは、1回のWi-FiSDカードレスポンスデータレジスタの読み込みにより、何個のResponseDataが取得できるかを示す情報である。WiFiSDcommandidは、ホストがWi-FiSDカードカードコマンドレジスタ経由で発行したWiFiSDコマンドの種類を表し、図23、図24、図25のWiFiSDコマンドのうちの一つが記録される。WiFiSDcommandsequenceidは、ホストがコマンドを発行する際に、それぞれのコマンドを識別するためにホストが割り振った値であり、それと同じ値が設定される。SizeofResponseDataは、Responsedataのサイズを示す情報であり、ResponseDataは、SendMessageByRegisterコマンドなどのWi-FiSDコマンドライトレジスタ経由でHTTPリクエストメッセージを送信し、Wi-FiSDレスポンスデータレジスタ経由でHTTPレスポンスメッセージを受信するようなコマンドを発行した際に、受信したデータが記録される。図31は、Wi-FiSDカードIDリストレジスタの構成例を示している。WiFiSDCardRegisterIdentifierは、このレジスタがWi-FiSDカードIDリストレジスタであることを示す情報であり、文字列WIFISDILが記録されている。SizeofWiFiSDCardRegisterは、レジスタのサイズを表す情報であり、ホストはこの情報を参照して、リードコマンドCMD48を何回発行して、どれだけのサイズのデータを読み込むべきかが分かるNumberofReceiverIDsは、リスト中に幾つの受信者IDが含まれているかを示す。つまり、P2PRestrictedServerApplicationを実行している送信者に対して、幾つのP2PClientApplicationを実行している受信者がアクセスをリクエストしているかを示す。ReceiverIDは、送信者に対してアクセスをリクエストしている受信者のIDである。受信者のIDは受信者のCardConfigurationInformationにより設定される。ReceiverMACAddressは、送信者に対してアクセスをリクエストしている受信者のMACアドレスである。ReceiverPermissionは、送信者に対してアクセスをリクエストしている受信者が、送信者からアクセスを許可されているかどうかを示す情報である。つまり、送信者が各受信者に対して、SelectIDコマンドによりアクセスを許可したかどうかを示す情報である。図32は、Wi-FiSDカードSSIDヒストリレジスタの構成例を示している。WiFiSDCardRegisterIdentifierは、このレジスタがWi-FiSDカードSSIDヒストリレジスタであることを示す情報であり、文字列WIFISDSHが記録されている。SizeofWiFiSDCardRegisterは、レジスタのサイズを表す情報であり、ホストはこの情報を参照して、リードコマンドCMD48を何回発行して、どれだけのサイズのデータを読み込むべきかが分かるSSIDは、カードがこれまで無線LANに接続または構築した際のSSIDの履歴リストにあるSSIDの名前が記録される。MACAddressは、カードがこれまで無線LANに接続または構築した際のSSIDの履歴リストにあるSSIDに対応したAPアクセスポイントのMACアドレスが記録される。なお、レジスタには記録されないが、カードには各SSIDに対するパスフレーズやチャンネル等の情報が保持されており、ホストから無線LANに接続または構築する際に、特定のSSIDが指定されなかった場合に、カードはこれらの情報を用いて接続または構築可能なSSIDの検索を行う。図33は、Wi-FiSDカードConfigurationInformationの構成例を示している。WiFiSDCardIdentifierは、この情報がWi-FiSDカードConfigurationInformationであることを示す情報であり、文字列WIFISDCIが記録されている。SizeofConfigurationInformationは、Wi-FiSDカードConfigurationInformationのサイズを表す情報である。IDは、このカードのIDを設定する情報であり、P2PClientApplicationの実行時に受信者のIDとして、このIDを送信者に送る際に用いられる。DHCPEnabledは、IPアドレス等の設定にDHCPを用いるかどうかを設定する情報である。IPAddressは、IPアドレスを手動で設定する際に用いる情報である。SubnetMaskは、SubnetMaskを手動で設定する際に用いる情報である。DefaultGatewayは、DefaultGatewayを手動で設定する際に用いる情報である。PreferredDNSServerは、優先DNSサーバーを手動で設定する際に用いる情報である。AlternateDNSServerは、代替DNSサーバーを手動で設定する際に用いる情報である。TimeOutは、カードがタイムアウト処理を行うまでの待ち時間を設定する情報である。この値は図27に示すWi-FiSDカードステータスレジスタのTimeOut情報に反映され、ホストが参照することができる。PowerSavemodeは、カードが省電力モードで動作させるかどうかを設定する情報である。省電力モードをサポートしないカードにおいては、この設定は無視される。NumberofProxyServersは、このカードに設定するプロキシサーバーの数である。SelectedProxyServerは、このカードに設定するプロキシサーバーのうち、現在はどのプロキシサーバーを使うかを示す情報である。LengthofProxyServerNameは、設定するプロキシサーバー名の文字数である。ProxyServerNameは、設定するプロキシサーバー名である。PortNumberは、設定するプロキシサーバーのポート番号である。MailAddressは、メールの送受信を行うユーザーのメールアドレスを設定する。また、図示しないが、カードが接続可能なWebサービスのホスト名、そのWebサービスに接続に必要な情報なども記録することができる。なお、一部を除き、これらの設定は図26、図27に示すWi-FiSDカードステータスレジスタの各情報に対応しており、実際にどの値で動作しているかは、リードコマンドCMD48を発行してWi-FiSDカードステータスレジスタを参照することができる。図34は、ライトコマンドCMD49を用いてWi-FiSDカードのコマンドを発行するとき、つまり、Wi-FiSDカードコマンドライトレジスタにアクセスしたときのタイミングチャートを示している。ここで、図中のCMDとDATはカードインターフェース上のコマンドバスとデータバスを示し、カード動作はそのときのカードの動作状態を示している。ホスト20からライトコマンドCMD49が発行されると、SDカード11はレスポンスR1をホスト20に返す。次に、ホスト20は、Wi-FiSDカードコマンドライトレジスタのデータWi-FiSDカードコマンドをCRCとともにSDカード11に送る。この送られたデータは、SDカード11の指定された拡張レジスタに記録される。SDカード11は、送られたデータの解析を行うため、データバスがビジー状態となる。このため、ホスト20から追加のコマンドを発行できない。SDカード11は、データの解析を行った後、コマンドを受け取ることができれば0x01を、受け取ることができなければ0x02をWi-FiSDカードステータスレジスタ上のコマンドステータスに設定する。もし、コマンドを受け取ることができれば、SDカード11はコマンドの実行処理に移る。コマンドの実行状況は、図24乃至図28に示すWi-FiSDカードステータスレジスタ上のプロセスステータスによって参照することができる。コマンドの実行処理が完了すると、プロセスステータスからコマンドの実行状況が消去され、代わりに実行結果がWi-FiSDカードステータスレジスタにおいて、別のステータス情報に反映される。図35は、図17に対応するものであり、複数のライトコマンドCMD49により、Wi-FiSDカードコマンドを発行したとき、つまり、Wi-FiSDカードコマンドライトレジスタのサイズが512バイトを超える場合のタイミングチャートを示している。ホスト20からライトコマンドCMD49が発行されると、SDカード11は、レスポンスR1をホスト20に返す。次に、ホスト20は、先ず、Wi-FiSDカードコマンドライトレジスタのデータWi-FiSDカードコマンドのうち、1/nをCRCとともにSDカード11に送る。すなわち、512バイトを超えるデータのうちの最初の512バイトが転送される。この送られたデータは、SDカード11の指定された拡張レジスタに記録される。このとき、SDカード11は送られたデータの解析を行うためデータバスがビジー状態となり、ホスト20から追加のコマンドの発行はできない。この状態において、SDカード11は、データを解析する。最初のデータには、データサイズNrが記録されているため、データ解析により、ライトコマンドCMD49が続いて発行されることが分かる。この後、ビジー状態が解除され、次のライトコマンドCMD49の発行待ち状態となる。ホスト20は、ビジー状態が解除された後、上記と同様にライトコマンドCMD49を発行し、Wi-FiSDカードコマンドライトレジスタのデータのうち、残りのデータを転送する。ホストデバイス20から最後のライトコマンドCMD49が発行され、Wi-FiSDカードコマンドライトレジスタのデータのうち、最後のデータn/nが転送された後、SDカード11は、データコマンドを解析し、コマンドの処理を実行する。図36は、図20に対応するものであり、1つのライトコマンドCMD49により発行されたデータに、複数のWi-FiSDカードコマンドが含まれる場合のタイミングチャートを示している。複数のWi-FiSDカードコマンドの発行は、例えば複数のファイルの転送を連続的に行うときなどに用いられる。ホスト20からライトコマンドCMD49が発行されると、SDカード11は、レスポンスR1をホストデバイス20返す。次に、ホスト20は、Wi-FiSDカードコマンドライトレジスタのデータをCRCとともにSDカード11に送る。この送られたデータは、SDカード11の指定された拡張レジスタに記録される。SDカード11は、送られたデータコマンド1~mを解析するため、データバスがビジー状態とされ、ホスト20により追加のコマンドは発行できない。SDカード11は、データの解析を行った後、コマンドを受け取ることができれば0x01を、受け取ることができなければ0x02を発行された複数のコマンドに対して、Wi-FiSDカードステータスレジスタ上のコマンドステータスにそれぞれ設定する。もし、コマンドを受け取ることができる場合、SDカード11は、各コマンドを実行する。全てのコマンドの実行状況は、Wi-FiSDカードステータスレジスタ上のプロセスステータスによって参照することができる。1つのコマンドの実行処理が完了すると、プロセスステータスからコマンドの実行状況が消去され、代わりに実行結果が、Wi-FiSDカードステータスレジスタ上の別のステータス情報に反映される。次に、まだ実行していないコマンドが実行される。図32は、一例として、コマンドの実行処理を連続して行うタイミングチャートを示したが、コマンドの実行処理は並列して行うことも可能である。また、SDカード11がコマンドの実行順序を最適化して実行することも可能である。図36の実施形態によれば、1つのコマンドにより発行されたデータに、複数のWi-FiSDカードコマンドが含まれているため、効率良くWi-FiSDカードコマンドを転送し、実行することが可能である。図37は、リードコマンドCMD48を用いて、Wi-FiSDカード11からデータを取得した場合、つまり、Wi-FiSDカードステータスレジスタ、Wi-FiSDカードレスポンスデータレジスタ、Wi-FiSDカードIDリストレジスタ、Wi-FiSDカードSSIDヒストリレジスタにアクセスした場合のタイミングチャートを示している。ホスト20からリードコマンドCMD48が発行されると、SDカード11は、レスポンスR1をホストデバイス20返す。次に、SDカード11は、リードコマンドCMD48の引数に応じて、Wi-FiSDカードステータスレジスタ、Wi-FiSDカードレスポンスデータレジスタ、Wi-FiSDカードIDリストレジスタ、Wi-FiSDカードSSIDヒストリレジスタのいずれかのデータ例えばステータスを拡張レジスタに準備する。さらに、SDカード11は、この拡張レジスタ内のデータをCRCとともにホスト20に送る。図38は、図17に対応するものであり、複数のリードコマンドCMD48により、Wi-FiSDカードのデータを取得する場合、つまり、Wi-FiSDカードレスポンスデータレジスタ等のサイズが512バイトを超える場合のタイミングチャートを示している。ホスト20からリードコマンドCMD48が発行されると、SDカード11は、レスポンスR1をホスト20に返す。次に、SDカード11は、リードコマンドCMD48の引数に応じて、Wi-FiSDカードレスポンスデータレジスタ等のデータを拡張レジスタに準備し、この拡張レジスタのデータをCRCとともにホスト20に送る。ホスト20は、受け取ったデータを解析する。最初のデータには、データサイズNrが記録されているため、リードコマンドCMD48を続いて発行する必要があることが分かる。このため、データの解析終了後、次のリードコマンドCMD48が発行される。以降の動作は、図31に示すライトコマンドCMD49の動作と同様であるため、説明は省略する。図38に示す実施形態によれば、データ長が512バイトを超えるデータを確実に読み取ることが可能である。図39は、Wi-FiSDカードがサポートするアプリケーションの一例を示している。図40は、ホストデバイスの起動時の動作を示している。ホスト20は、起動されると、リードコマンドCMD48を発行し、拡張レジスタ31のページ0のデータを読み込み、SDカード11が有する拡張機能としての無線通信機能を確認するS11、S12。すなわち、SDカード11がWi-Fi機能や、Bluetooth機能など、どのような無線通信機能を実装しているかが確認される。次に、ホスト20がSDカード11の拡張機能に対応しているかどうかが判別されるS13。この結果、拡張機能に対応している場合、その拡張機能を有効とさせるため、拡張レジスタ31のページiiは0以外のデータが読み込まれS14、SDカード11が対応する例えば規格名、バージョン、プロファイル、デバイス情報などが確認されるS15。これに基づき、ホスト20は、ホスト20が所有する最適なドライバを有効とするS16。これにより、SDカード11の拡張機能にアクセスすることが可能となる。次に、拡張レジスタ31の全てのページの機能を確認したかどうかが判別されるS17。この結果、残りのページがある場合、次のページにおけるカードの機能が確認されS18、S16、全てのページが確認されている場合は、機能設定が終了される。図41は、各アプリケーションの状態遷移図である。図39に示す各アプリケーションは、InitialApplicationを初期状態とし、StartApplicationコマンドにより各アプリケーションに遷移、EndApplicationにより初期状態に戻る構成になっている。これにより、各アプリケーションが同時に実行されることを避けることができ、カードの実装の負荷を低減し、ホストのアプリケーションの使用方法を単純化することができる。図42は、無線LANの状態遷移図である。無線LANの状態はInitialFailed、Scan、AP、STA、Associationに分類される。InitialFailedは、無線LANの初期状態を示す、ただし何らかの処理が失敗し場合も初期状態と同じ状態に遷移する。Scanは、ScanWiFi、コマンドによりスキャンを実行中であることを示す状態である。スキャンが終了し、SSIDLISTファイルを出力すると初期状態に戻る。APはアクセスポイントとして無線LANを構築している状態である。初期状態から、インフラストラクチャのAPとなるためのコマンドの実行、またはAPとなる必要があるアプリケーションを起動するコマンドの実行を行った状態である。Associationは、インフラストラクチャのSTAとして無線LANに接続するためにアソシエーションを行うとともにDHCPサーバーからIPアドレス等の設定を行っている状態である。これが成功するとSTAとして無線LANに接続している状態に遷移し、失敗すると初期状態に戻る。なお、現在の無線LANの状態は図24に示すWi-FiSDカードステータスレジスタのWLAN情報に反映され、ホストはリードコマンドCMD48を発行することで、いつでも無線LANの状態を知ることができ、現在の無線LANの状態に応じたコマンドを実行することができる。図43は、Wi-FiSDカード内のディレクトリ構成を示している。DCIMディレクトリはDCFDesignruleforCameraFilesystem規格で定められる写真データを記録するためのディレクトリである。また、MISCファイルはDPOF規格が定める写真プリントのためのデータや他のデータを記録するためのディレクトリである。WIFISDディレクトリは本発明におけるWi-FiSDカードに関連するデータを記録するためのディレクトリである。WIFISDディレクトリの下には、DOWNLOADディレクトリ、CONFIGファイル、SSIDLISTファイル、FILELISTファイルが記録されている。DONWLOADディレクトリは、相手先サーバーから受信するHTTPレスポンスメッセージを記録するためのディレクトリである。SendHttpMessageコマンド、SendHttpFileコマンド、SendHttpSSLMessageコマンド、SendHttpSSLFileコマンドを実行すると、カードは相手先サーバーに対してHTTPリクエストメッセージを送信し、カードはその相手先サーバーからのHTTPレスポンスメッセージをRESPONSEディレクトリの下にファイルとして保存する。このときファイルにはHTTPリクエストライン、HTTPメッセージヘッダとHTTPメッセージボディが記録され、このときのファイル名は発行されたコマンドのWiFiSDcommandsequenceidを用いることにより、他のHTTPレスポンスメッセージと区別され、ホストがHTTPレスポンスメッセージを参照することが可能になる。カードはファイルを記録する際に、HTTPレスポンスメッセージを解析し、HTTPレスポンスメッセージに添付されるデータを抽出して、別のファイルとして保存することも可能である。例えば、HTTPレスポンスメッセージにMIMEタイプがimagejpegであるようなデータが添付されていた場合、カードはMIMEタイプのサブタイプを識別しJPEGディレクトリの下にそのデータを保存する。このときのファイル名はDL000000JPG~DL999999JPGのように規定の連番を用いる。もしHTTPレスポンスメッセージにダウンロードしたファイルのファイル名情報が含まれる場合、そのファイル名を用いても良い。もし、MIMEタイプが分からないデータが含まれていた場合、UNDEFディレクトリに全て保存することとする。ことのきのファイル名もDL000000~DL999999の規定の連番を用いる。CONFIGファイルは、図33に示したWiFiSDCardConfigurationInformationを記録するファイルであり、ホストが編集することができる。また、ホストがStartApplicationコマンドを実行して無線LANの接続や構築を行った際にCardConfigurationInformationの設定情報がその接続と設定に用いられる。SSIDLISTファイルは、ScanWiFiコマンドを実行した際に、接続可能なSSID名、信号強度、APのMACアドレスをリストとしてカードがファイルに出力するときの出力ファイルである。ホストはこのリストを参照し、接続するSSID名を選択し、SetSSIDコマンドで設定することができる。FILELISTファイルは、P2PRestrictedServerApplicationを実行する送信者が、P2PClientApplication実行する受信者に対し、送信可能なファイルのリストをファイルとして記録してものである。FILELISTファイルには、送信するファイルのファイルパスとファイル名とともに、そのファイルのサムネールファイルのファイルパスとファイル名、そのファイルのメタデータファイルのファイルパスとファイル名を記録することが可能である。これにより、受信者は、送信者からのファイルの取得を行う前に、サムネールファイルのみを受信し、サムネールを確認しながら必要なファイルのみを選択して受信することできる。更に、ファイルの取得を行う前に、送信者からメタデータファイルのみを取得し、メタデータファイルに含まれる情報を用いて取得可能なファイルを分類し、取得するファイルを選択するための階層メニューをユーザーに提供することが可能である。なお、サムネールファイルやメタデータが存在しない場合は省略可能である。図44は、Wi-FiSDカードのコマンド処理の流れを示す図である。1.ホストは、ライトコマンドCMD49を用いてWi-FiSDカードコマンドライトレジスタにおけるWiFiCommandInformationを書き込むことにより、Wi-FiSDコマンドをカードに対して発行する。2.コマンドが発行されると、発行されたコマンドをカードが受けとることができたかどうかがWi-FiSDカードコマンドレスポンスステータスレジスタのCommandResponseStatusにカードによって登録される。3.ホストは、リードコマンドCMD48を用いてWi-FiSDカードコマンドレスポンスステータスレジスタにおけるCommandResponseStatusを読み込み、ホストが発行したコマンドをカードが受け取ることができたか、何らかの理由発行したコマンドと引数に誤りがあった、またはカードがコマンドを既に処理中であるため新規のコマンドを受け付けない状態である等で受け取ることができなかったかを確認することができる。4.カードが受け取ることができたコマンドは、その処理状況をWi-FiSDカードコマンドプロセスステータスレジスタにおけるCommandProcessStatusにカードによって登録される。5.ホストは、リードコマンドCMD48を用いてWi-FiSDカードコマンドプロセスステータスレジスタにおけるCommandProcessStatusを読み込み、ホストが発行したコマンドの処理状況処理前か、処理中か、処理後成功したか、処理後失敗したか等を確認することができる。6.処理が終わったコマンドは順次Wi-FiSDカードコマンドプロセスステータスレジスタから削除してもよいし、後から参照する必要があるものは残しても良い。また、コマンド処理が終わった結果、Wi-FiSDカードステータスレジスタのMeidaChange、SSIDListUpdate、FileListUpdate、ResponseDataUpdate等の情報が更新される。図45は、Wi-FiSDカードの設定の流れを示す図である。ホストはカード内にCONFIGファイルが存在しなければ、CardConfigurationInformationを含むCONFIGファイルを生成する。このとき、CardConfigurationInformationの各情報はホストが指定した値が設定される。無線LANが接続、または構成された場合、CardConfigurationInformationに設定した値がカードに自動的に設定される。もしCONFIGファイルが存在しない場合は、カードはCardConfigurationInformationに初期値が設定されているものとして動作する。ただし、SSIDとパスフレーズに関しては、無線LAN接続または構築する前に、ホストはSetSSIDコマンドを実行してホストに記録されているSSIDとパスフレーズを設定する必要がある。これはパスフレーズをファイルに記録して外部に流出することを避けるためである。設定したSSIDやCardConfigurationInformationの各情報が、無線LAN接続構築後にどのように設定されているかは、リードコマンドCMD48を用いてWi-FiSDカードステータスレジスタを参照することにより知ることができる。更に、設定したSSIDの履歴は、パスフレーズとAPのMACアドレス情報とともに、カード内に記録され、SetSSIDコマンドでSSIDに関する情報を設定しない場合でも、過去の履歴を用いて無線LAN接続構築をおこなうことができる。なお、この情報はリードコマンドCMD48によりWi-FiSDカードSSIDヒストリレジスタを参照することができ、不要なSSID例えば既に存在しないSSIDである場合はRemoveSSIDコマンドを用いて、特定のSSIDをWi-FiSDカードSSIDヒストリレジスタから削除することができる。図46は、P2Pアプリケーションの流れを示す図である。1:送信ホストはカード内に受信カードがアクセス可能なファイルをリストにしたFILELISTファイルを作成する。2:送信ホストは、無線LANを構築するため、CMD49によりSetSSIDコマンドを発行して、送信カードにSSID名、パスフレーズ、認証方式を設定する。3:送信ホストはP2PRestrictedServerApplicationまたはP2PServerApplicationを起動するためにCMD49経由でStartApplicationコマンドを発行する。4:受信ホストは接続可能な無線LANをスキャンするため、CMD49によりScanWiFiコマンドを発行する。4.1:受信カードは無線LANに接続するためにスキャンを行う。4.1.1:受信カードは接続可能なSSID名をリストにしたSSIDLISTファイルをカード内に作成する。5:受信ホストはCMD48によりWi-FiSDカードステータスレジスタのSSIDListUpdateを読み、受信カードによる無線LANのスキャンが問題なく完了していることを確認する。6:受信ホストはカード内のSSIDLISTファイルを読み込む。7:受信ホストはSSIDLISTファイルからSSIDを選択し、受信カードに対しSSIDとパスフレーズを設定するためにCMD49によりSetSSIDコマンドを発行する。ここで、受信ホストがSSIDの選択を行わなかった場合は、受信カードはカード内に記録されている過去に設定されたSSIDの履歴であるSSIDHistoryにあるSSIDの設定を用いる。また、受信カードと送信カードの両方がWPSによってSSIDの設定を行うこともできる。8:受信ホストはP2PClientApplicationを起動するためにCMD49によりStartApplicationコマンドを実行する。8.1:受信カードは送信カードに対してアソシエーションを要求する。8.2:受信カードが送信カードに接続すると、受信カードはDHCPサーバーである送信カードに対してIPアドレスの割付を要求する。8.3:IPアドレスが割り当てられると、受信カードは送信カードに受信者のIDを通知するための下記のHTTPリクエストメッセージを送信する。ここで、ReceiverIDは受信者のID、ReceiverMACaddressは受信者のMACアドレス、SenderIPaddressは送信者のIPアドレスが設定される。―――――――――――――――――――――――――――――――――――――――GEThttpSenderIPaddresscommandcgiop0idReceiverIDmacReceiverMACaddress―――――――――――――――――――――――――――――――――――――――9:送信ホストはCMD48によりWi-FiSDカードステータスレジスタのIDListUpdateを読み、IDListが更新されていることを確認する。10:IDListが更新されていれば、送信ホストはCMD48によりWi-FiSDカードIDリストレジスタを読み込む。11:送信ホストはCMD49によりSelectIDコマンドを発行して、リスト中の受信者のIDの中から受信を許可する受信者のIDを選択する。11.1:送信カードは下記のHTTPリクエストメッセージを受信カードに送信し、受信が許可されてことを通知する。ここでReceiverIPaddressは受信者のIPアドレスを示す。―――――――――――――――――――――――――――――――――――――――GEThttpReceiverIPaddresscommandcgiop1―――――――――――――――――――――――――――――――――――――――11.1.1:もし受信が許可されれば、受信カードは送信カードからFILELISTファイルをダウンロードするため以下のHTTPリクエストメッセージを送信する。ここでSenderIPaddressは送信者のIPアドレスを示す。12:受信ホストはCMD48によりWi-FiSDカードステータスレジスタのFileListUpdateを読み、FILELISTファイルのダウンロードが完了したことを確認する。13:受信ホストはカード内のFILELISTファイルを読み込む。14:受信ホストは、CMD49によりGetFileコマンドを発行して、FILELISTファイルに書かれた情報URLに基づき、サムネールファイルやメタデータファイルのダウンロードを指示する。14.1:受信カードは送信カードに下記のHTTPリクエストメッセージを送信し、指定されたサムネールファイルやメタデータファイルをダウンロードしてカードに記録する。ここで、SenderIPaddressは送信者のIPアドレス、filepathはファイルパス、filenameはファイル名を示す。―――――――――――――――――――――――――――――――――――――――GEThttpSenderIPaddressfilepathfilename―――――――――――――――――――――――――――――――――――――――15:受信ホストはCMD48によりWi-FiSDカードステータスレジスタのCurrentHTTPまたはWi-FiSDカードコマンドプロセスステータスレジスタのCommandProcessStatusを読み、サムネールファイルかメタデータファイルのダウンロードが完了したことを確認する。以上のプロセスはサムネールファイルとメタデータファイルの数だけ繰り返す。16:受信ユーザーは事前に取得したサムネールやメタデータによって受信するファイルを選択する。受信ホストは、CMD49によりGetFileコマンドを発行して、FILELISTファイルに書かれた情報URLに基づき、ユーザーによって選択されたファイルのダウンロードを指示する。16.1:受信カードは送信カードに下記のHTTPリクエストメッセージを送信し、指定されたファイルをダウンロードしてカードに記録する。ここで、SenderIPaddressは、送信者のIPアドレス、filepathはファイルパス、filenameはファイル名を示す。―――――――――――――――――――――――――――――――――――――――GEThttpSenderIPaddressfilepathfilename―――――――――――――――――――――――――――――――――――――――17:受信ホストはCMD48によりWi-FiSDカードステータスレジスタのCurrentHTTPまたはWi-FiSDカードコマンドプロセスステータスレジスタのCommandProcessStatusを読み、ユーザーにより指定されたファイルのダウンロードが完了したことを確認する。以上のプロセスはユーザーに指定されたファイルの数だけ繰り返す。18.受信カードによる全てのファイルのダウンロードが完了すると、受信ホストはCMD49によりEndApplicationコマンドを発行して、アプリケーションの終了と無線LANの接続の終了を指示する。18.1:受信カードは送信カードに対し、下記のHTTPリクエストメッセージを送信し、ダウンロードが完了したことを通知する。ここでSenderIPaddressは送信者のIPアドレスを示す。―――――――――――――――――――――――――――――――――――――――GEThttpSenderIPaddresscommandcgiop3―――――――――――――――――――――――――――――――――――――――18.1.1:接続している全ての受信カードからダウンロード完了が通知され、送信カードは無線LANの構築を終了する。19:送信ホストはCMD48によりWi-FiSDカードステータスレジスタのWLANを読み、無線LANの構築が終了したことを確認する。20:無線LANの構築が終了していれば、送信ホストはCMD49によりEndApplicationコマンドを発行して、アプリケーションの終了を指示する。図47は、ServerUploadアプリケーションの流れを示す図である。1:ホストは接続可能な無線LANをスキャンするためにCMD49によりScanWiFiコマンドを発行する。1.1:カードは無線LANに接続するためにスキャンを行う。1.1.1:カードは接続可能なSSID名をリストにしたSSIDLISTファイルをカード内に作成する。2:ホストはCMD48によりWi-FiSDカードステータスレジスタのSSIDListUpdateを読み、カードによる無線LANのスキャンが問題なく完了していることを確認する。3:ホストはカード内のSSIDLISTファイルを読み込む。4:ホストはSSIDLISTファイルからSSIDを選択し、カードに対しSSIDとパスフレーズを設定するため、CMD49によりSetSSIDコマンドを発行する。ここで、ホストがSSIDの選択を行わなかった場合は、カードはカード内に記録されている過去に設定されたSSIDの履歴であるSSIDHistoryにあるSSIDの設定を用いる。また、カードと接続するAPの両方がWPSによってSSIDの設定を行うこともできる。5:ホストはServerUploadApplicationを起動するためCMD49によりStartApplicationコマンドを実行する。5.1:カードはAPに対してアソシエーションを要求する。5.2:カードがAPに接続すると、カードはDHCPサーバーであるAPに対してIPアドレスの割付を要求する。6:ホストは、CMD48によりWi-FiSDカードステータスレジスタのWLANを読み、無線LAN接続が問題なく行われていることを確認する。7:SendHttpMessage、SendHttpFile、SendHttpSSLMessage、SendHttpSSLFileコマンドを発行する場合は、ホストは相手サーバーに送信するHTTPリクエストメッセージの内容を含むファイルをカード内に作成する。一方、SendHttpMessageByRegister、SendHttpFileByRegister、SendHttpSSLMessageByRegister、SendHttpSSLFileByRegisterコマンドを発行する場合は、ホストは相手サーバーに送信するHTTPリクエストメッセージをファイルではなくホストデバイス内のメモリに作成する。8:ホストは、CMD49によりSendHttpMessage、SendHttpFile、SendHttpSSLMessage、SendHttpSSLFile、SendHttpMessageByRegister、SendHttpFileByRegister、SendHttpSSLMessageByRegister、SendHttpSSLFileByRegisterコマンドを発行して、カードに対して、HTTPリクエストメッセージの送信を指示する。8.1:カードはカード内に作成されたファイル、もしくはWi-FiSDカードコマンドライトレジスタからHTTPリクエストメッセージを読み込み、相手サーバーに送信する。このとき、SendHttpFile、SendHttpSSLFile、SendHttpFileByRegister、SendHttpSSLFileByRegisterコマンドの場合は、HTTPリクエストメッセージ内の特定の文字列を指定されたカード内のファイルに置換して、つまりHTTPリクエストメッセージにカード内のファイルを添付して送信する。8.1.1:相手サーバーは、送信されたHTTPリクエストメッセージに対し、HTTPレスポンスメッセージをカードに返信する。ここで、カードがSendHttpMessage、SendHttpFile、SendHttpSSLMessage、SendHttpSSLFileコマンドを発行していた場合は、カードはHTTPレスポンスメッセージをカード内にファイルとして記録する。一方、SendHttpMessageByRegister、SendHttpFileByRegister、SendHttpSSLMessageByRegister、SendHttpSSLFileByRegisterコマンドを発行していた場合は、カードはHTTPレスポンスメッセージをWi-FiSDカードレスポンスデータレジスタのmessageに記録する。9:ホストは、CMD48によりWi-FiSDカードステータスレジスタのCurrentHTTPまたはWi-FiSDカードコマンドプロセスステータスレジスタのCommandProcessStatusを読み、HTTPリクエストメッセージの送信とHTTPレスポンスメッセージの受信が完了したことを確認する。10:ホストはファイルに記録されたHTTPレスポンスメッセージを読み込む。または、CMD48によりHTTPレスポンスメッセージに記録されたHTTPレスポンスメッセージを読み込む。以上のプロセスはユーザーに指定されたファイルの数だけ繰り返す。11:ホストは、CMD49によりEndApplicationコマンドを発行して、アプリケーションの終了と無線LANの接続の終了を指示する。図48は、P2Pアプリケーションにおいて、送信側ホストのFileList生成処理とファイル送信処理のフローを示す図である。送信ホストは、P2PServerアプリケーション、またはP2PRestrictedServerアプリケーションを起動する。更に、送信ホストはユーザーに送信するファイルを選択するためのメニューを表示し、それに従い送信ユーザーは送信するファイルを選択するS21。送信ホストは選択されたファイルのファイルパスとファイル名を抽出するS22。更に、送信ホストは選択されたファイルのメタデータを抽出するS23。ここで、選択されたファイルのメタデータファイルが存在するのであれば、メタデータファイルのファイル名とファイルパスを抽出する。一方、サムネールに関しては、送信ホストは、まず選択されたファイルのサムネールがカード内に存在するか確認するS24。もし存在するのであれば送信用のサムネールファイルとしてファイルパスとファイル名を抽出するS25。次に、サムネールが存在しないのであれば、送信ホストはファイル内にサムネールが含まれるかを確認しS26、サムネールが含まれるのであれば、これを送信用サムネールファイルとしてカード内にコピーしファイルパスとファイル名を抽出するS27。ファイル内にサムネールが含まれないのであれば、送信ホストはファイルのサムネールを生成しカード内に保存しファイルパスとファイル名を抽出するS28。送信ホストは以上の抽出したデータからFILELISTファイルを作成しカード内に保存するS29。送信カードは受信カードからのリクエストに応じてFILELISTファイルを受信カードに送信するS30。更に、受信カードからのリクエストに応じてFileListに記載されたファイルを受信カードに送信する。全ての送信が完了すると、送信ホストはP2PServerアプリケーション、またはP2PRestrictedServerアプリケーションを終了する。図49は、P2Pアプリケーションにおいて受信側ホストのファイル選択処理とファイル取得処理のフローを示す図である。受信ホストは、P2PClientアプリケーションを起動する。更に、受信ホストは、受信カードはFileListを送信カードから取得したのち、FileListを読み込むS41。受信ユーザーが送信カードの全てのファイルを取得したいのであれば、FileListに記載されているファイルを全て送信側からダウンロードし、受信カード内のフォルダに保存するS42、S43。受信ユーザーが送信側カードのファイルから選択して一部だけ取得したいのであれば、受信ホストは受信ユーザーに対してファイル選択のためのメニューを提供する。このとき、サムネールをメニューに表示しない場合は取得可能なファイルのメタデータをメニューに表示するS44、S45。サムネールをメニューに表示する場合は、もし送信カードにサムネールファイルが存在するのであれば、受信ホストはサムネールファイルを取得し、取得可能なファイルのサムネールとメタデータをメニューに表示するS46、S47、S48。もし、送信カードにサムネールファイルが存在しないのであれば受信ホストまたは受信カードは代替となるサムネールを作成しS40、取得可能なファイルのサムネールとメタデータをメニューに表示するS48。ここで、サムネールファイルと同様に、もし送信カードにメタデータファイルが存在するのであれば、受信ホストはメタデータファイルを取得し、これを参照してより詳細なメタデータをメニューに表示しても良い。受信ユーザーは表示されたメニューをもとに取得するファイルを選択するS50。受信ホストは選択されたファイルを送信カードからダウンロードし、受信カード内のフォルダに保存するS43。全ての受信が完了すると、受信ホストはP2PClientアプリケーションを終了する。上記各実施形態によれば、次の効果を得ることができる。多くのカード製造者が、任意の機能をSDカードに実装するため、SDカードに搭載される通信機能の種類は多岐に亘る。これらの通信機能を制御するためには、種々の制御のための定義をSDカードのコマンドの空間に割り当てる必要がある。しかし、通信機能は多岐に亘るため、全ての通信機能を制御するための定義を規定すると、コマンドのアドレス空間が不足する。これに対して、本実施形態によれば、複数ページにより構成される拡張レジスタを用いて、SDカードが有する通信機能を制御するためのページ、通信対象のデータの受け渡しに用いるページを定義することにより、通信機能を制御するため定義をコマンドの空間へ効率良く割り当てることができる。また、本実施形態によれば、コマンドCMD48、CMD49が指定する拡張レジスタにより、通信機能を容易に制御することができる。さらに、コマンドCMD48、CMD49を用いることにより、メモリ用のホストコントローラであっても、効率良く、拡張レジスタを制御することが可能である。その他、本発明は上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。"