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 が指す場所は、レジストリに正常にコピーされたデータの長さに更新されます。

戻り値

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

注釈

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

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

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

要件

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

こちらもご覧ください

AtaPortRegistryAllocateBuffer

AtaPortRegistryFreeBuffer