Поделиться через


Функция AtaPortGetUnCachedExtension (irb.h)

Подпрограмма AtaPortGetUncachedExtension выделяет общий буфер без кэширования, который совместно используется ЦП и устройством.

Примечание В будущем модели драйвера портов ATA и драйвера мини-порта ATA могут быть изменены или недоступны. Вместо этого рекомендуется использовать модели драйверов Storport и драйверов для мини-портов Storport .
 

Синтаксис

PVOID AtaPortGetUnCachedExtension(
  [in] PVOID ChannelExtension,
  [in] ULONG UncachedExtensionSize,
  [in] ULONG IrbExtensionSize
);

Параметры

[in] ChannelExtension

Указатель на расширение канала.

[in] UncachedExtensionSize

Указывает длину общего буфера без кэширования (в байтах). Установите для этого параметра значение 0, если драйверу мини-порта не требуется некэшированные расширения.

[in] IrbExtensionSize

Указывает размер (в байтах), необходимый драйверу мини-порта для каждого хранилища запросов, если таковой имеется.

Задайте для этого параметра значение 0, если драйвер мини-порта не поддерживает сведения о IRB, для которых ему требуется хранилище.

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

AtaPortGetUncachedExtension возвращает указатель виртуального адреса на некэшированное расширение. Если не удается выделить запрошенную память или если память была выделена ранее, возвращается значение NULL.

Комментарии

Драйвер мини-порта может использовать расширения IRB в качестве хранилища для определяемых драйвером сведений о запросах, таких как данные, необходимые для обработки определенного запроса.

Драйвер порта не инициализирует расширения IRB, но задает указатель на расширение в каждом IRB, отправляемом драйверу мини-порта.

Оборудование HBA может безопасно получить доступ к расширению IRB.

Драйвер мини-порта не должен вызывать AtaPortGetUncachedExtension из любой подпрограммы, отличной от подпрограммы IdeHwControl , и только при обработке действия управления StartChannel. Вызовы AtaPortGetUncachedExtension из других подпрограмм драйвера мини-порта приводят к неправильной работе или даже к сбою системы. Драйвер порта автоматически освобождает некэшированного расширения после вызова IdeHwControl с действием элемента управления StopChannel .

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть irb.h (включая Ata.h, Irb.h)
Библиотека Ataport.lib; Pciidex.lib

См. также раздел

IdeHwControl