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 の値を削除しました。