Tip: このページで探している回答が見つからない場合、テクニカル ドキュメントも参照してください。 |
||||||||||||||||||||||
|
||||||||||||||||||||||
一般的な問題
価格とライセンスの問題
テクニカル情報 - WinDriver
Kernel PlugIn の問題
Windows の問題
Windows CE の問題
Linux の問題
CardBus の問題 Parallel/Serial の問題 Interrupt の問題
DMA の問題
|
||||||||||||||||||||||
WinDriver を使用すると、 カーネル モードでプログラムをする必要はありません。
よって、私は実際にはドライバを作成していないのでしょうか?
デバイス ドライバとは、ハードウェアをコントロールするソフトウェア モジュールです。現在のオペレーティング システムには、このソフトウェア モジュールが多くの場合カーネル モード (ring 0) に存在します。 ただし、WinDriver を使用すると、WinDriver の低レベルなカーネル ドライバ (windrvr6.sys/vxd/o または windrvr.sys/vxd/o - OS および WinDriver のバージョンによって異なります) を使用して、このコードをユーザー モードで記述できます。 したがって、ドライバ開発の知識を必要としません [WinDriver アーキテクチャを参照してください]。 WinDriver にはまた、Kernel PlugIn 機能があり、ユーザー モードで開発したコードをカーネル モードに移行することができます (PCI/ISA の場合)。 作成したドライバがユーザー モードまたはカーネル モードのいずれかとしても、 そのコードはハードウェアをコントロールするので、それはドライバと言うことができます。 WinDriver を購入すると、自分自身でデバイス
ドライバを開発する必要はありませんか?
デバイス ドライバの開発またはカーネル
プログラミングの経験は必要ですか? 推奨する開発ステップ:
終了! 購入前に製品の評価をできますか? WinDriver は後方互換性がありますか? 質問/問い合せはできますか?
40日ほど前に Windows PC に WinDriver をインストールしました。再度、製品を評価したいのですが、評価期間終了のメッセージが表示されます。アンインストールしてリインストールしても駄目でした。
USB ポートがついた Microsoft Side Winder のドライバが必要です。そのドライバを提供していますか? WinDriver のアンインストール方法を教えてください。
|
||||||||||||||||||||||
WinDriver のライセンスの購入方法?
お見積りをご希望の場合は、価格ページをご参照ください。 WinDriver で開発したドライバは、配布数に制限はありますか? また、ロイヤリティ料は掛かりますか? WinDriver の評価版を登録後、 WinDriver で作成したアプリケーション
(評価版で動作) は、DriverWizard を起動するまで、動作しません。PC を再起動後、DriverWizard
を起動するまで、再びプログラムは動作しません。WinDriver のサンプル プログラムも同様です。何が悪いのでしょうか? WinDriver を使用してドライバを開発しましたが、そのドライバは開発環境でしか動作しません。開発環境以外のマシンにドライバを配布する方法を教えてください。
|
||||||||||||||||||||||
Debug Monitor ユーティリティとは?
起動方法は? 'Trace' モードとは? 作成したアプリケーションを起動するとシステムがクラッシュします。よって、Debug
Monitor ログにデバッグ情報を取得できません。システムがクラッシュする際に、他にデバッグ情報を取得する方法はありますでしょうか? MSVC++ を使用して、簡単にコードをデバッグできますか? ISA カード用に 20 以上の 'hardware items' (I/O、メモリおよび割り込みなど)
を定義する必要があります。この場合、windrvr.h ヘッダ ファイルの WD_CARD_ITEMS
の値が増加しました (WD_CARD_ITEMS
WD_ITEMS 構造体の配列として、WD_CARD
構造体の Item メンバー を定義したため)。
しかし、現在 WD_CardRegister()
は動作しません。何故でしょうか? WinDriver の登録版をインストールしましたが、Jungo から提供されたサンプル プログラム (PCI
Bus Diagnostics、Parallel Port Sample など) が動作しません。何が問題でしょうか? 作成した WD_Transfer()
メモリ転送ルーティンの処理が非常に遅いです。速度を上げることはできますか? 作成したドライバを対象のマシンにインストールしましたが、開発環境用のマシンでは発生しなかった問題が発生します。開発環境用のマシンと同様に対象のマシン上でも
Debug Monitor ユーティリティを起動することができますか?
|
||||||||||||||||||||||
Kernel PlugIn は無料ですか? 使用するのにライセンスは必要ですか? Kernel PlugIn のプロジェクトをビルドするのに Microsoft の DDK は必要ですか? 1 秒間 (一般的に) に期待できる割り込みの回数はいくつですか? ドライバ コードは常に物理メモリ内でロックされますか? カーネルでロックされたメモリをどのように割り当てますか
(Kernel PlugIn 割り込みルーティン内から使用可能)? Kernel PlugIn で割り込みを処理する際に、ユーザー モードで割り込みハンドラーを削除することはできますか? Kernel PlugIn 機能を使用して、VxD または SYS ドライバ
ファイルを作成できますか? WinDbg などのカーネル デバッガを使用して、参照することができる
Kernel PlugIn からのデバッグ情報をどのように出力しますか? 作成したアプリケーションの close 処理で PC がハングします。
WD_IntDisable() で失敗しています。何が原因でしょうか?
Kernel PlugIn を使用して、割り込みを処理しています。 Kernel に Kernel PlugIn モジュールを挿入すると
(insmod を使用)、多くの unresolved symbols エラーが発生します。 SYS/VxD ファイルに新しい関数を記述する場合、 __cdecl
を使用して宣言する必要がありますか?
|
||||||||||||||||||||||
WDM デバイス ドライバとは何ですか? また、WinDriver は WDM
をサポートしていますか? Windows XP マシンに WinDriver で作成したドライバをインストールしました。
Windows が以下のメッセージを表示します: WinDriver は、Microsoft のデジタ署名を取得していますか?
WinDrive で開発したドライバでデジタル署名を取得するには?
|
||||||||||||||||||||||
Windows CE 用のデバッグ ユーティリティはありますか?
はい - Windows CE 上でも Debug Monitor ユーティリティを使用できます。 詳細情報は、テクニカル ドキュメント #13 を参照してください。 CE NDIS ドライバを作成しています。CE IP スタックと talk します。 Windows CE のシリアル ポートの NDIS ドライバを作成してます。WinDriver で実現可能ですか?
|
||||||||||||||||||||||
Kernel に Kernel PlugIn モジュールを挿入すると (insmod
を使用)、多くの unresolved symbols エラーが発生します。 Linux にカーネル バッファを割り当てようとし、100KB バッファの割り当てはできますが、150KB の割り当てはできません。何が必要でしょうか?
|
||||||||||||||||||||||
WinDriver は、PCI ドライバを使用したラップトップの CardBus スロットをサポートしてますか?
|
||||||||||||||||||||||
パラレル ポートを持つ通信機器に WinDriver を使用しています。ECP
モードの場合、正常に動作するコンピュータもありますが、正常に動作しないコンピュータもあります。
|
||||||||||||||||||||||
現在、ユーザー モード ハンドラーの割り込みと有効に 25ms を掛かっています。
これが、アプリケーションのハンドラーとして期待できるパフォーマンスですか?
割り込み処理をより早く処理するために割り込み処理を Kernel PlugIn に移行する予定です。 DriverWizard を使用して、レベル センシティブな割り込みを処理するコードを生成しました。WD_IntWait()
の戻り後、割り込みステータス レジスタを read しましたが、割り込みが発生していないようです。複数のカードで割り込みを共有してる場合、これは問題です。 DriverWizard を使用して、PCI ボードの割り込みを listen しましたが、次のエラーが表示されました:
|
||||||||||||||||||||||
WD_DMALock() を使用して、大きなメモリ ブロック (1 MB 以上) をロックできません。Debug Monitor には、 Scatter/Gather でロックの失敗が表示されています。 NOTE 高レベルな
WDC_DMASGBufLock() 関数を使用する場合 (WinDriver v7.00 以降で利用可能)、大きい DMA バッファをロックするのに同じ設定を実行する必要はありません; この関数が既に処理しています。低レベルな WD_DMALock() 関数を使用する場合のみ、以下のステップが必要です。
Windows では、非ページ プールのサイズを増やす必要がある場合があります (メモリの割り当てから)。詳細は、テクニカル ドキュメント #58 を参照してください。バッファ全体をロックできない場合、バッファを小さくしてみてください。 WinDriver を使用した DMA 実行に関する詳細情報は、WinDriver ユーザー マニュアルの第 8 章「実行に当たっての問題」の「DMA の実行」セクションと WinDriver DMA API の関数レファレンスを参照してください。 Windows で DMA のメモリ バッファをロックしました。ユーザー モードのポインタを使用してメモリに直接アクセスすると、malloc() で割り当てた "regular" メモリ バッファのアクセスよりも 5 倍遅いです。何故でしょうか?
|