Функция 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.

[in] Buffer

Указатель на исходный буфер, содержащий данные для записи в значение реестра.

BufferLength

Указатель на количество байтов данных для копирования. Если операция завершается ошибкой, расположение, на которое указывает длина будет обновляться до длины данных, успешно скопированных в реестр.

Возвращаемое значение

AtaPortRegistryControllerKeyWriteDeferred возвращает TRUE, если операция завершится успешно. В противном случае возвращается FALSE. Подпрограмма также возвращает FALSE, если драйвер мини-порта не вызывает его из правильной подпрограммы.

Замечания

Если имя значения отсутствует, программа AtaPortRegistryControllerKeyWriteDeferred создает запись для имени значения и сохраняет входные данные под новым именем значения.

Драйвер минипорта может вызывать подпрограмму AtaPortRegistryControllerKeyWriteDeferred из любого из подпрограмм, определенных в интерфейсе канала.

Буфер, на который указывает буфер , необходимо выделить с помощью AtaPortRegistryAllocateBuffer. Драйвер минипорта не должен повторно использовать этот буфер после вызова AtaPortRegistryControllerKeyWriteDeferred, так как драйвер порта задерживает запись ключевых данных. Если драйвер минипорта повторно использует буфер, он может перезаписать данные в буфере, прежде чем драйвер порта имеет возможность сохранить его в разделе реестра. Драйвер порта сбрасывает буфер, когда драйвер минипорта вызывает AtaPortRegistryFreeBuffer, чтобы освободить буфер.

Требования

Требование Ценность
целевая платформа Настольный
заголовка irb.h (include Ata.h, Irb.h)

См. также

AtaPortRegistryAllocateBuffer

AtaPortRegistryFreeBuffer