次の方法で共有


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 を呼び出した後、キャッシュされていない拡張機能を自動的に解放します。

要件

要件
対象プラットフォーム デスクトップ
Header irb.h (Ata.h、Irb.h を含む)
Library Ataport.lib;Pciidex.lib

こちらもご覧ください

IdeHwControl