Compartir a través de


Función AtaPortGetUnCachedExtension (irb.h)

La rutina AtaPortGetUncachedExtension asigna un búfer común sin almacenar en caché compartido por la CPU y el dispositivo.

Nota Los modelos de controlador de puerto ATA y controlador de minipuerto de ATA pueden modificarse o no estar disponibles en el futuro. En su lugar, se recomienda usar el controlador Storport y los modelos de controlador de miniport storport .
 

Sintaxis

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

Parámetros

[in] ChannelExtension

Puntero a la extensión del canal.

[in] UncachedExtensionSize

Especifica la longitud, en bytes, del búfer común sin almacenar en caché. Establezca este parámetro en 0 si el controlador de minipuerto no requiere una extensión no almacenada en caché.

[in] IrbExtensionSize

Especifica el tamaño, en bytes, que requiere el controlador de miniport para su almacenamiento por solicitud, si existe.

Establezca este parámetro en 0 si el controlador de minipuerto no mantiene la información de IRB para la que requiere almacenamiento.

Valor devuelto

AtaPortGetUncachedExtension devuelve un puntero de dirección virtual a la extensión no almacenada en caché. Si no puede asignar la memoria solicitada o si la memoria se asignó anteriormente, devuelve NULL.

Comentarios

El controlador de minipuerto puede usar extensiones IRB como almacenamiento para información específica del controlador determinada por el controlador, como los datos necesarios para procesar una solicitud determinada.

El controlador de puerto no inicializa las extensiones IRB, pero establece un puntero a una extensión en cada IRB que envía al controlador de minipuerto.

El hardware HBA puede acceder de forma segura a una extensión IRB.

El controlador de miniport no debe llamar a AtaPortGetUncachedExtension desde cualquier rutina que no sea su rutina IdeHwControl y solo cuando procesa una acción de control de StartChannel. Las llamadas de AtaPortGetUncachedExtension desde otras rutinas del controlador de miniporte producen una operación incorrecta o incluso un error del sistema. El controlador de puerto libera automáticamente la extensión sin almacenar en caché después de invocar IdeHwControl con la acción de control StopChannel .

Requisitos

Requisito Value
Plataforma de destino Escritorio
Encabezado irb.h (incluya Ata.h, Irb.h)
Library Ataport.lib; Pciidex.lib

Consulte también

IdeHwControl