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.
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 |