次の方法で共有


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

戻り値

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

備考

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

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

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

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

必要条件

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

関連項目

AtaPortRegistryAllocateBuffer

AtaPortRegistryFreeBuffer