Freigeben über


AtaPortRegistryControllerKeyWriteDeferred-Funktion (irb.h)

Die AtaPortRegistryControllerKeyWriteDeferred-Routine schreibt die Daten asynchron in den angegebenen Wertnamen unter dem Registrierungsschlüssel HKLM\CurrentControlSet\Services\<service name>\ControllerN, wobei N die Nummer des Controllers ist.

Hinweis Die Modelle ATA-Porttreiber und ATA-Miniporttreiber sind möglicherweise geändert oder in Zukunft nicht mehr verfügbar. Stattdessen wird empfohlen, die Modelle Storport-Treiber und Storport-Miniporttreiber zu verwenden.
 

Syntax

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

Parameter

[in] ChannelExtension

Ein Zeiger auf die Kanalerweiterung.

[in] ControllerNumber

Enthält die Controllernummer.

[in] ValueName

Enthält den Namen des Registrierungswerts, in den geschrieben werden soll.

[in] ValueType

Gibt den Datentyp an, der im Registrierungswert enthalten ist. Diesem Member sollte einer der in der folgenden Tabelle angegebenen Werte zugewiesen werden.

Wert Bedeutung
IDE_REG_DWORD Ein numerischer Wert mit 4 Byte.
IDE_REG_BINARY Binärdaten.
IDE_REG_SZ Eine mit NULL endende Unicode-Zeichenfolge.

[in] Buffer

Ein Zeiger auf den Quellpuffer, der die Daten enthält, die in den Registrierungswert geschrieben werden sollen.

BufferLength

Ein Zeiger auf die Anzahl der zu kopierenden Datenbytes. Wenn der Vorgang fehlschlägt, wird der Speicherort, auf den length verweist, auf die Länge der Daten aktualisiert, die erfolgreich in die Registrierung kopiert wurden.

Rückgabewert

AtaPortRegistryControllerKeyWriteDeferred gibt TRUE zurück, wenn der Vorgang erfolgreich ist. Andernfalls wird FALSE zurückgegeben. Die Routine gibt auch FALSE zurück, wenn der Miniporttreiber ihn nicht aus der richtigen Routine aufruft.

Hinweise

Wenn der Wertname nicht vorhanden ist, erstellt die AtaPortRegistryControllerKeyWriteDeferred-Routine einen Eintrag für den Wertnamen und speichert die Eingabedaten unter dem neu erstellten Wertnamen.

Der Miniporttreiber kann die AtaPortRegistryControllerKeyWriteDeferred-Routine aus allen Routinen aufrufen, die in der Kanalschnittstelle definiert sind.

Der Puffer, auf den von Buffer verwiesen wird, muss mithilfe von AtaPortRegistryAllocateBuffer zugeordnet werden. Der Miniporttreiber darf diesen Puffer nach dem Aufruf von AtaPortRegistryControllerKeyWriteDeferred nicht wiederverwenden, da der Porttreiber das Schreiben der Schlüsseldaten verzögert. Wenn der Miniporttreiber den Puffer wiederverwendet, überschreibt er möglicherweise die Daten im Puffer, bevor der Porttreiber die Möglichkeit hat, sie im Registrierungsschlüssel zu speichern. Der Porttreiber leert den Puffer, wenn der Miniporttreiber AtaPortRegistryFreeBuffer aufruft, um den Puffer freizusetzen.

Anforderungen

Anforderung Wert
Zielplattform Desktop
Kopfzeile irb.h (einschließlich Ata.h, Irb.h)

Weitere Informationen

AtaPortRegistryAllocateBuffer

AtaPortRegistryFreeBuffer