WinDriver PCI/ISA API のバージョンアップによる変更
WinDriver では、一般的に WinDriver の API の後方互換を維持するようにデザインしており、以前のバージョンで開発したコードは、新しいバージョンのヘッダー ファイルと新しいバージョンのライセンス コードを使用して、コードをリビルドするだけで新しいバージョンへ移行することができます。多くの場合、コードの変更なしで (ライセンス コードのアップデートを除く)、新しいバージョンのヘッダーとドライバだけで、古いコードは動作するはずです。ただし、新しい OS やハードウェアに実装される機能に対応するために、既存の API を変更せざるおえない場合があります。本ドキュメントでは、異なる WinDriver のバージョン間で変更した WinDriver の API を紹介し、古いコードを新しい API を使うように移植する方法を説明します。
注意
- 一般的に、本ドキュメントで "PCI" と記載している場合、PCI と PCI-Express、PCMCIA および ISA が含まれます。
- 本ドキュメントは、WinDriver PCI 版の API に関する記載となります。WinDriver USB 版の API のアップグレードに関しては、テクニカル ドキュメント #117 を参照してください。
- 本ドキュメントは、以前のバージョンの API から僅かな変更でコードをアップデートする方法のみを紹介しています。
さらにコードのアップデートが必要な場合には、最新バージョンの WinDriver で追加/強化した API を使用することを強く推奨します。
最新バージョンの WinDriver で追加/強化した API に関しては、WinDriver のリリース ノートと WinDriver PCI ユーザー マニュアルを参照してください。
最新バージョンの WinDriver へのフル アップグレード方法に関しては、テクニカル ドキュメント #84 を参照してください。
以下、WinDriver の API の変更に関する情報を参照してください:
WinDriver v11.80 PCI 版の API の変更
v11.80 では、WinDriver WDC PCI API と低レベル WinDriver PCI API に対して以下の変更を行いました;
これらの変更の主な目的は、64-bit PCI アドレスのサポートの改良となります:
- include/wdc_defs.h WDC type の変更 —
WDC_ADDR_DESC
struct —
kptAddr
フィールドの名前を
pAddr
へ変更しました。
dwBytes
フィールドの名前を
qwBytes
へ変更し、
その type を DWORD
から
UINT64
へ変更しました。
dwUserDirectMemAddress
フィールドの名前を
pUserDirectMemAddr
へ変更しました。
- include/windrvr.h 低レベル WinDriver type の変更 —
WD_TRANSFER
構造体の変更 —
注意
WD API はこの type と同様に WD_INTERRUPT
構造体 type (type WD_TRANSFER*
の Cmd
フィールドを持つ) を参照します。
dwPort
フィールドの名前を
pPort
へ変更しました。
-
WD_ITEMS
構造体の変更 —
注意
WDC API は WD_CARD
構造体 (WD_ITEMS
構造体の配列である Item フィールドを持つ) と
WD_CARD_REGISTER
構造体 (type WD_CARD
の Card フィールドを持つ) を参照します。
-
dwOptions
フィールドを I.Mem.dwOptions
フィールドに置き換えました。
I.Mem
union 構造体フィールドの変更
—
dwPhysicalAddr
フィールとの名前を
pPhysicalAddr
へ変更し、
その type を DWORD
から PHYS_ADDR
へ変更しました。
dwBytes
フィールドの名前を
qwBytes
へ変更し、
その type を DWORD
から UINT64
へ変更しました。
dwTransAddr
フィールドの名前を
pTransAddr
へ変更しました。
dwUserDirectAddress
フィールドの名前を
pUserDirectAddr
へ変更しました。
- 予約済みの
dwCpuPhysicalAddr
フィールドを削除しました。
- 新たに
pReserved
フィールドを追加しました。
I.Mem64
union 構造体フィールドを削除しました。
I.IO
union 構造体フィールドを以下のように変更
—
dwAddr
フィールドの名前を
pAddr
へ変更しました。
I.Int
union 構造体フィールドを以下のように変更
—
- 新たに
dwReserved1
と
pReserved2
フィールドを追加しました。
I.Val
union 構造体フィールドを削除しました。
WD_ITEM_OPTIONS
enum — type の名前をWD_ITEM_MEM_OPTIONS
へ変更し、
その WD_ITEM_XXX
enum の値の名前を WD_ITEM_MEM_XXX
へ変更しました。
注意
WD_ITEMS
構造体の
I.Mem.dwOptions
フィールド
(
以前 は
dwOptions
フィールド)
は、この enum type の値を取得します。
ITEM_TYPE
enum の ITEM_MEMORY_64BIT
enum の値を削除しました。