AtaPortRegistryChannelSubkeyWriteDeferred 関数 (irb.h)

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

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

構文

BOOLEAN AtaPortRegistryChannelSubkeyWriteDeferred(
  [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 が指す場所は、レジストリに正常に書き込まれたデータの長さに更新されます。

戻り値

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

注釈

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

Buffer によって指される バッファー は、 AtaPortRegistryAllocateBuffer を使用して割り当てる必要があります。

ミニポート ドライバーは、そのチャネル インターフェイスに属している任意のキー ルーチンから AtaPortRegistryChannelSubKeyWriteDeferred を呼び出すことができます。

ミニポート ドライバーは、AtaPortRegistryChannelSubKeyWriteDeferred への最初の呼び出しの後に Buffer によって指されるバッファーを再利用することはできません。 呼び出しは非同期であるため、 Buffer はレジストリにフラッシュされていないデータを指している可能性があります。 ポート ドライバーは、ミニポート ドライバーが AtaPortRegistryFreeBuffer を呼び出すときに、バッファー内のデータをレジストリにフラッシュします。

要件

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

こちらもご覧ください

AtaPortRegistryAllocateBuffer

AtaPortRegistryFreeBuffer