次の方法で共有


AtaPortGetUnCachedExtension 関数 (irb.h)

AtaPortGetUncachedExtension ルーチンは、CPU とデバイスによって共有されるキャッシュされていない共通バッファーを割り当てます。

ATA ポート ドライバーと ATA ミニポート ドライバー モデルは、将来変更されたり使用できなくなったりする可能性があります。 代わりに、Storport ドライバー を使用し、Storport ミニポート ドライバー モデル することをお勧めします。
 

構文

PVOID AtaPortGetUnCachedExtension(
  [in] PVOID ChannelExtension,
  [in] ULONG UncachedExtensionSize,
  [in] ULONG IrbExtensionSize
);

パラメーター

[in] ChannelExtension

チャネル拡張機能へのポインター。

[in] UncachedExtensionSize

キャッシュされていない共通バッファーの長さをバイト単位で指定します。 ミニポート ドライバーがキャッシュされていない拡張機能を必要としない場合は、このパラメーターを 0 に設定します。

[in] IrbExtensionSize

要求ごとの記憶域にミニポート ドライバーが必要とするサイズ (バイト単位) を指定します (存在する場合)。

ミニポート ドライバーが記憶域を必要とする IRB 情報ごとに維持しない場合は、このパラメーターを 0 に設定します。

戻り値

AtaPortGetUncachedExtension 、キャッシュされていない拡張機能への仮想アドレス ポインターを返します。 要求されたメモリを割り当てることができない場合、またはメモリが以前に割り当てられた場合は、NULLを返します。

備考

ミニポート ドライバーは、特定の要求を処理するために必要なデータなど、ドライバーによって決定された、要求固有の情報の記憶域として IRB 拡張機能を使用できます。

ポート ドライバーは IRB 拡張機能を初期化しませんが、ミニポート ドライバーに送信する各 IRB 内の拡張機能へのポインターを設定します。

HBA ハードウェアは、IRB 拡張機能に安全にアクセスできます。

ミニポート ドライバーは、IdeHwControl ルーチン以外の任意のルーチンから AtaPortGetUncachedExtension を呼び出す必要があります StartChannelのコントロール アクションを処理している場合にのみ。 他のミニポート ドライバー ルーチンから AtaPortGetUncachedExtension を呼び出すと、操作が正しくないか、システム障害が発生します。 ポート ドライバーは、StopChannel 制御アクションを使用して IdeHwControl 呼び出した後、キャッシュされていない拡張機能を自動的に解放します。

必要条件

要件 価値
ターゲット プラットフォーム デスクトップ
ヘッダー irb.h (Ata.h、Irb.h を含む)
ライブラリ Ataport.lib;Pciidex.lib

関連項目

IdeHwControl