次の方法で共有


AtaPortRegistryControllerKeyWriteDeferred 関数 (irb.h)

AtaPortRegistryControllerKeyWriteDeferred ルーチンは、レジストリ キー HKLM\CurrentControlSet\Services\<service name>\ControllerNの下の指定された値の名前に非同期的にデータを書き込みます。ここで、N はコントローラーの数です。

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

構文

BOOLEAN AtaPortRegistryControllerKeyWriteDeferred(
  [in] PVOID  ChannelExtension,
  [in] UCHAR  ControllerNumber,
  [in] PCHAR  ValueName,
  [in] UCHAR  ValueType,
  [in] PUCHAR Buffer,
       PULONG BufferLength
);

パラメーター

[in] ChannelExtension

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

[in] ControllerNumber

コントローラー番号を格納します。

[in] ValueName

書き込むレジストリ値の名前を格納します。

[in] ValueType

レジストリ値に含まれるデータの種類を示します。 このメンバーには、次の表に示す値のいずれかを割り当てる必要があります。

価値 意味
IDE_REG_DWORD 4 バイトの数値。
IDE_REG_BINARY バイナリ データ。
IDE_REG_SZ null で終わる Unicode 文字列。

[in] Buffer

レジストリ値に書き込むデータを格納しているソース バッファーへのポインター。

BufferLength

コピーするデータのバイト数へのポインター。 操作が失敗した場合、Length が指す場所は、レジストリに正常にコピーされたデータの長さに更新されます。

戻り値

AtaPortRegistryControllerKeyWriteDeferred は、操作が成功した場合 TRUE を返します。 それ以外の場合は、FALSE 返します。 また、ミニポート ドライバーが正しいルーチンから呼び出さない場合、このルーチンは FALSE 返します。

備考

値名が存在しない場合、AtaPortRegistryControllerKeyWriteDeferred ルーチンは、値名のエントリを作成し、新しく作成された値の名前の下に入力データを格納します。

ミニポート ドライバーは、チャネル インターフェイスで定義されているルーチンのいずれかから、AtaPortRegistryControllerKeyWriteDeferred ルーチンを呼び出すことができます。

Buffer が指すバッファーは、AtaPortRegistryAllocateBufferを使用して割り当てる必要があります。 ミニポート ドライバーは、ポート ドライバーがキー データの書き込みを遅延するため、AtaPortRegistryControllerKeyWriteDeferred を呼び出した後、このバッファーを再利用しないでください。 ミニポート ドライバーがバッファーを再利用する場合は、ポート ドライバーがレジストリ キーに格納する機会を持つ前に、バッファー内のデータを上書きする可能性があります。 ポート ドライバーは、ミニポート ドライバーがバッファーを解放する AtaPortRegistryFreeBuffer を呼び出すときにバッファーをフラッシュします。

必要条件

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

関連項目

AtaPortRegistryAllocateBuffer

AtaPortRegistryFreeBuffer