ホーム
製品リスト
ダウンロード
オンラインショップ
お問い合わせ
会社概要
ブログ
検索
ダウンロード
ショップ
お問い合わせ
会社概要
ブログ
Toggle navigation
Jungo
製品ホーム
製品
WinDriver 製品一覧
WinDriver PCI
WinDriver USB
WinDriver for Servers
Windows ドライバーのデジタル署名サービス
WHQL (HLK) プレテスト代行サービス
ダウンロード
WinDriver PCI
WinDriver USB
価格
技術情報
テクニカル情報
マニュアル ダウンロード
テクニカル ドキュメント
FAQ
リリースノート
ブログ
お問い合わせ
テクニカル ドキュメント #58
Doc ID:
58
製品:
WinDriver
Version:
--
WD_DMALock() の呼び出しで、1GB DMA バッファの割り当てに失敗します。Windows でも同様です。これは、OS の制限でしょうか?
WinDriver は、WD_DMALock() 関数で割り当てることができる DMA バッファのサイズに制限を持っていません。ただし、DMA 割り当ての成功は、割り当て時の利用可能なシステム リソースの大きさに依存します。[このため、バッファを早期に割り当てれば、成功します]。
連続バッファ DMA
割り当ての場合、割り当てのために十分な連続物理メモリが必要です。
Scatter/Gather
DMA を実行する場合、1MB 以上のバッファを割り当てる際に、WD_DMALock() 関数へ渡される WD_DMA 構造体の dwOptions フィールドに DMA_LARGE_BUFFER フラグを設定してください。
WD_DMALock() 関数で割り当てられた DMA バッファは、ページロック メモリを使用します (安全な DMA 操作を行います)。ページロック メモリは、Windows のメモリの非ページ カーネル プールから割り当てられます。
このプールのサイズは、起動時にレジスタの設定で決まります。
NonPagedPoolSize レジストリ エントリの値を増やすことによって、割り当てるメモリを増やすことができます:
HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Control\Session Manager\Memory Management
以下にあります。
十分に連続メモリがある場合もありますが、メモリをマップするのに十分なページ テーブル エントリがない場合、
テクニカル ドキュメント #59
を参照してください。
関連するレジストリのエントリの値を増やした後でも、特に大きなバッファ (1MB など) を割り当てようとすると、メモリの割り当てでエラーが発生する場合があります。この場合の解決策としては、成功するまで、ロックするバッファのサイズを減らしてみてください。
注意: WD_DMALock() はまた、割り当てられたバッファの物理メモリを仮想ユーザー モード スペースにマップします。このため、マップする全体のバッファを有効にするのに、十分な空き仮想メモリが必要です。
このサイトでは、サイトや広告を改善するために Cookie を使用します。サイトを利用することで、Cookie の使用に同意するものといたします。詳細は
プライバシーについて
をご覧ください。
同意する