Share via


enumeración SCSI_ADAPTER_CONTROL_TYPE (storport.h)

La enumeración SCSI_ADAPTER_CONTROL_TYPE contiene operaciones de control de adaptador, donde cada tipo de control inicia una acción en un adaptador mediante el controlador de miniporte. Storport especifica el tipo de control cuando llama a la rutina HwStorAdapterControl de un miniport.

Syntax

typedef enum _SCSI_ADAPTER_CONTROL_TYPE {
  ScsiQuerySupportedControlTypes,
  ScsiStopAdapter,
  ScsiRestartAdapter,
  ScsiSetBootConfig,
  ScsiSetRunningConfig,
  ScsiPowerSettingNotification,
  ScsiAdapterPower,
  ScsiAdapterPoFxPowerRequired,
  ScsiAdapterPoFxPowerActive,
  ScsiAdapterPoFxPowerSetFState,
  ScsiAdapterPoFxPowerControl,
  ScsiAdapterPrepareForBusReScan,
  ScsiAdapterSystemPowerHints,
  ScsiAdapterFilterResourceRequirements,
  ScsiAdapterPoFxMaxOperationalPower,
  ScsiAdapterPoFxSetPerfState,
  ScsiAdapterSurpriseRemoval,
  ScsiAdapterSerialNumber,
  ScsiAdapterCryptoOperation,
  ScsiAdapterQueryFruId,
  ScsiAdapterSetEventLogging,
  ScsiAdapterReportInternalData,
  ScsiAdapterResetBusSynchronous,
  ScsiAdapterPostHwInitialize,
  ScsiAdapterPrepareEarlyDumpData,
  ScsiAdapterRestoreEarlyDumpData,
  ScsiAdapterKsrPowerDown,
  ScsiAdapterPreparePLDR,
  ScsiNvmeofAdapterOperation,
  ScsiAdapterControlMax,
  MakeAdapterControlTypeSizeOfUlong
} SCSI_ADAPTER_CONTROL_TYPE, *PSCSI_ADAPTER_CONTROL_TYPE;

Constantes

 
ScsiQuerySupportedControlTypes
Informa de las operaciones de control de adaptador implementadas por el controlador de minipuerto. Un minipuerto debe admitir este tipo de control.

El controlador storport llama a HwStorAdapterControl con este tipo de control y Parameters que apuntan a una estructura de SCSI_SUPPORTED_CONTROL_TYPE_LIST después de inicializar el HBA, pero antes de la primera E/S.

El controlador de minipuerto rellena la estructura SCSI_SUPPORTED_CONTROL_TYPE_LIST con las operaciones que admite. Después de que HwStorAdapterControl vuelva de esta llamada, el controlador storport llama al HwStorAdapterControl del controlador de miniport solo para las operaciones compatibles con la minipuerto.
ScsiStopAdapter
Apaga el HBA. Un minipuerto debe admitir este tipo de control.

El controlador storport llama a HwStorAdapterControl con este tipo de control (y Parámetros establecidos en NULL) cuando el HBA se ha quitado del sistema, se ha detenido para la reconfiguración de recursos, se apaga para la administración de energía o se vuelve a configurar o deshabilitar. Storport garantiza que no hay solicitudes no completadas y emite una solicitud de SRB_FUNCTION_FLUSH al controlador de miniporte antes de llamar a esta rutina.

El controlador de miniporte deshabilita las interrupciones en su HBA, detiene todo el procesamiento (incluido el procesamiento en segundo plano no sujeto a interrupciones o el procesamiento del que el controlador Storport no es consciente, como reconstruir volúmenes tolerantes a errores), vacía los datos almacenados en caché restantes en el almacenamiento persistente y coloca el HBA en un estado desde el que se puede reinicializar o reiniciar.

El controlador de minipuerto no debe liberar sus recursos al detener su HBA. Si el HBA se quitó o detuvo para la reconfiguración de recursos PnP, el controlador storport libera los recursos en nombre del controlador de miniport. Si el HBA se apaga para la administración de energía, se conservan los recursos del controlador de miniporte para que se pueda reiniciar el HBA.

Después de que HwStorAdapterControl vuelva de detener el HBA, las estructuras de datos asignadas en nombre del controlador de minipuerto para el HBA deben considerarse no válidas hasta que se pida al controlador de miniportar que reinicie.

Tenga en cuenta que Storport puede llamar a HwStorAdapterControl para detener el adaptador después de que el HBA ya se haya quitado físicamente del sistema, por lo que la rutina HwStorAdapterControl del controlador de miniporte no debe realizar ninguna operación que requiera que el HBA esté físicamente presente mientras detiene el HBA.

El controlador de minipuerto no se llama de nuevo para el HBA hasta que el administrador de PnP solicita que se inicie el HBA, en cuyo caso el controlador Storport (re)inicializa llamando a sus rutinas HwStorAdapterControl y HwStorInitialize , o un HBA detenido para la administración de energía, en cuyo caso el controlador Storport llama a la rutina HwStorAdapterControl del controlador de miniport con ScsiRestartAdapterControl o bien, si el controlador de minipuerto no implementa ese tipo de control, repite la secuencia de inicialización para el HBA.
ScsiRestartAdapter
Reinicializa un HBA. Un minipuerto debe admitir este tipo de control.

El controlador storport llama a HwStorAdapterControl con este tipo de control (y parámetros establecidos en NULL) para encender un HBA que se cerró para la administración de energía. Todos los recursos asignados previamente al controlador de minipuerto siguen estando disponibles, y su extensión de dispositivo y extensiones de unidad lógica, si las hay, están intactas.

El controlador de minipuerto realiza las mismas operaciones que en su rutina HwStorInitialize , como configurar los registros del HBA y su estado inicial, si existe.

El controlador de miniport no debe llamar a rutinas que solo se pueden llamar desde HwStorFindAdapter o desde HwStorAdapterControl cuando el tipo de control es ScsiSetRunningConfig, como StorPortGetBusData y StorPortSetBusDataByOffset. Si el controlador de miniporte debe llamar a estas rutinas para reiniciar su HBA, también debe implementar ScsiSetRunningConfig.

Si el controlador de minipuerto no implementa ScsiRestartAdapter, el controlador storport llama a las rutinas HwStorFindAdapter y HwStorInitialize del controlador de miniport. Sin embargo, dado que estas rutinas pueden hacer que la detección funcione innecesariamente para reiniciar el HBA, este tipo de controlador de minipuerto no encenderá su HBA tan rápidamente como un controlador de minipuerto que implementa ScsiRestartAdapter.
ScsiSetBootConfig
Restaura cualquier configuración de un HBA que el BIOS necesite reiniciar. El controlador Storport llama a HwStorAdapterControl con este tipo de control (y Parameters establecido en NULL) después de llamar a esta rutina con ScsiStopAdapter.

Un controlador de miniport debe implementar ScsiSetBootConfig si debe llamar a StorPortGetBusData o StorPortSetBusDataByOffset antes de que el sistema pueda reiniciarse.
ScsiSetRunningConfig
Restaura cualquier configuración en un HBA que el controlador de miniporte necesite controlar el HBA mientras se ejecuta el sistema. El controlador Storport llama a HwStorAdapterControl con este tipo de control (y Parameters establecido en NULL) antes de llamar a esta rutina con ScsiRestartAdapter si el controlador de miniporta implementa ese tipo de control.

La interrupción del HBA aún no está conectada cuando el controlador storport realiza esta llamada, por lo que el controlador de miniport debe tener cuidado de no generar una interrupción.

Un controlador de miniport debe implementar ScsiSetRunningConfig si debe llamar a StorPortGetBusData o StorPortSetBusDataByOffset para restaurar la configuración en ejecución adecuada al HBA antes de que se pueda reiniciar.
ScsiPowerSettingNotification
Notificación de un cambio de configuración de energía registrado. El controlador storport llama a HwStorAdapterControl con este tipo de control y Parámetros que apuntan a una estructura de STOR_POWER_SETTING_INFO si se produce un cambio de configuración de energía. Los miniportes se registran para las notificaciones de configuración de energía llamando a StorPortSetPowerSettingNotificationGuids con una lista de GUID que representan los eventos de cambio de energía de interés. Este tipo de control es válido en Windows 8 y versiones posteriores.
ScsiAdapterPower
Informa de los estados de encendido o apagado del adaptador. El controlador Storport llama a HwStorAdapterControl con este tipo de control y Parameters que apuntan a una estructura de STOR_ADAPTER_CONTROL_POWER . Si el miniport admite este tipo de control, no recibirá un bloque de solicitud de almacenamiento con SRB_FUNCTION_POWER y no se llama a HwStorAdapterControl con el tipo de control ScsiStopAdapter . Este tipo de control es válido en Windows 8 y versiones posteriores.
ScsiAdapterPoFxPowerRequired
Notifica al miniporte si la alimentación es necesaria o no para el componente del adaptador. El controlador Storport llama a HwStorAdapterControl con este tipo de control y Parámetros que apuntan a un valor BOOLEAN que es TRUE si el componente del adaptador requiere alimentación; de lo contrario, FALSE. Este tipo de control es válido en Windows 8 y versiones posteriores.
ScsiAdapterPoFxPowerActive
Notifica al miniporte si el componente del adaptador está activo o inactivo. El controlador storport llama a HwStorAdapterControl con este tipo de control y Parámetros que apuntan a una estructura de STOR_POFX_ACTIVE_CONTEXT . Este tipo de control es válido en Windows 8 y versiones posteriores.
ScsiAdapterPoFxPowerSetFState
Notifica al miniporte para establecer el componente de adaptador en el estado F dado. El controlador storport llama a HwStorAdapterControl con este tipo de control y Parámetros que apuntan a una estructurade STOR_POFX_FSTATE_CONTEXT . Este tipo de control es válido en Windows 8 y versiones posteriores.
ScsiAdapterPoFxPowerControl
Solicita que el miniporte ejecute una operación de control de energía privada que se inició para el adaptador mediante un complemento de motor de alimentación (PEP). El controlador storport llama a HwStorAdapterControl con este tipo de control y Parameters que apuntan a una estructura de STOR_POFX_POWER_CONTROL . Este tipo de control es válido en Windows 8 y versiones posteriores.
ScsiAdapterPrepareForBusReScan
Notifica al miniporte para preparar el adaptador para la enumeración de bus. El controlador storport llama a HwStorAdapterControl con este tipo de control (y Parameters establecido en NULL). El minipuerto debe encender el adaptador y todos los dispositivos conectados para permitir que la operación de enumeración de bus encuentre los dispositivos. Este tipo de control es válido en Windows 8 y versiones posteriores.
ScsiAdapterSystemPowerHints
Proporciona sugerencias de alimentación del sistema al minipuerto. El controlador Storport llama a HwStorAdapterControl con este tipo de control y Parameters que apuntan a una estructura de STOR_SYSTEM_POWER_HINTS . Este tipo de control es válido en Windows 8 y versiones posteriores.
ScsiAdapterFilterResourceRequirements
Filtra los recursos necesarios para el adaptador. El controlador storport llama a HwStorAdapterControl con este tipo de control IRP_MN_FILTER_RESOURCE_REQUIREMENTS y Parameters que apuntan a una estructura de STOR_FILTER_RESOURCE_REQUIREMENTS cuando Storport procesa la solicitud y miniport tiene la marca STOR_FEATURE_ADAPTER_CONTROL_PRE_FINDADAPTER establecida en el campo FeatureSupport de HW_INITIALIZATION_DATA. Tenga en cuenta que deviceExtension pasado para este tipo de control no se inicializará.

El controlador de minipuerto debe cambiar o reducir los recursos descritos en el búfer mediante la estructura STOR_FILTER_RESOURCE_REQUIREMENTS . Este tipo de control es válido en Windows 8.1 y versiones posteriores.
ScsiAdapterPoFxMaxOperationalPower
Comunica un valor máximo de energía operativa al miniporte. El controlador storport llama a HwStorAdapterControl con este tipo de control y Parámetros que apuntan a una estructura de STOR_MAX_OPERATIONAL_POWER . Para recibir este control, el miniport debe haber llamado previamente a StorPortPoFxSetPerfState para registrar un conjunto de rendimiento con PStateType = StorPoFxPerfStateTypeDiscrete y Count> 1.

El campo Valor de cada estado de energía (P-State) debe representar un nivel de potencia máximo relativo en proporción a los demás estados P y estará dentro del intervalo de niveles de potencia máximos notificados por los estados P-States del miniporte, ambos incluidos. El miniporte debe asegurarse de elegir un estado de potencia cuyo consumo máximo de energía sea menor o igual que el valor especificado en este parámetro.
ScsiAdapterPoFxSetPerfState
Informa al miniporte del estado de una transición de estado P solicitada por una llamada a StorPortPoFxSetPerfState. El controlador Storport llama a HwStorAdapterControl con este tipo de control y Parameters que apuntan a una estructura de STOR_POFX_PERF_STATE_CONTEXT .

Si el miniporte necesita iniciar una transición de estado de energía física, debe esperar a la devolución de llamada HwStorAdapterControl antes de hacerlo. Es decir, un miniport debe llamar primero a StorPortPoFxSetPerfState para indicar su intención de realizar una transición de estado P. Después, Storport llamará a la devolución de llamada HwStorAdapterControl de la miniporte, momento en el que el miniporte puede realizar cualquier acción relacionada con la transición de estado P (por ejemplo, cambiar el estado de energía física del dispositivo).
ScsiAdapterSurpriseRemoval
Notifica al miniporte que la unidad se ha quitado sorpresa. El controlador storport llama a HwStorAdapterControl con este tipo de control (y Parameters establecido en NULL).
ScsiAdapterSerialNumber
Solicita que el miniporte recupere el número de serie del adaptador. El controlador Storport llama a HwStorAdapterControl con este tipo de control y Parameters que apuntan a una estructura de STOR_SERIAL_NUMBER .
ScsiAdapterCryptoOperation
Reservado para uso del sistema. Notifica al miniporte para realizar una operación criptográfica. Storport llama a HwStorAdapterControl con él y Parameters que apuntan a un STOR_CRYPTO_OPERATION.
ScsiAdapterQueryFruId
Disponible a partir de Windows 10 versión 21H1. Consulta el identificador de una unidad de reemplazo de errores (FRU) del adaptador. Storport llama a HwStorAdapterControl con él y Parameters que apuntan a una estructura de STOR_FRU_ID_DESCRIPTION al controlar [IOCTL_STORAGE_QUERY_PROPERTY]ni-ntddstor-ioctl_storage_query_property.md) con un identificador de propiedad StorageFruIdProperty .

Storport envía este control solo si una miniport también ha llamado anteriormente StorPortSetFeatureList en su rutina HwFindAdapter con StorportFeatureFruIdAdapterControl especificado.
ScsiAdapterSetEventLogging
Disponible a partir de Windows 10 versión 21H1. Notifica al miniporte si un canal de eventos específico está habilitado o deshabilitado para un adaptador. A continuación, una minipuerta debe llamar a una API para registrar un evento para el adaptador solo cuando se habilita el canal correspondiente. Si el miniport admite este tipo de control, Storport llama a HwStorAdapterControl con él y Parámetros que apuntan a una estructura de STOR_SET_EVENT_LOGGING .

Storport envía este control solo si una miniport también ha llamado anteriormente StorPortSetFeatureList en su rutina HwFindAdapter con StorportFeatureFruIdAdapterControl especificado.
ScsiAdapterReportInternalData
Reservado para uso del sistema. Disponible a partir de Windows 11, versión 22H2.

Storport envía este control solo si un miniport también ha llamado anteriormente StorPortSetFeatureList en su rutina HwFindAdapter con ScsiAdapterReportInternalData especificado.
ScsiAdapterResetBusSynchronous
Disponible a partir de Windows 11, versión 22H2. Storport envía este control durante el control de un IOCTL_STORAGE_DEVICE_RESET. El controlador de minipuerto debe controlar este control de forma similar a lo que hace en su rutina de devolución de llamada HwResetBus y debe devolver SCSI_ADAPTER_CONTROL_STATUS.

Storport envía este control solo si un miniport también ha llamado anteriormente StorPortSetFeatureList en su rutina HwFindAdapter con StorportFeatureResetBusSynchronous especificado.
ScsiAdapterPostHwInitialize
Reservado para uso del sistema. Disponible a partir de Windows 11, versión 22H2.

Storport envía este control solo si un miniport también ha llamado anteriormente StorPortSetFeatureList en su rutina HwFindAdapter con StorportFeaturePostHwInitialize especificado.
ScsiAdapterPrepareEarlyDumpData
Reservado para uso del sistema. Disponible a partir de Windows 11, versión 22H2.

Storport envía este control solo si un miniport también ha llamado anteriormente StorPortSetFeatureList en su rutina HwFindAdapter con StorportFeaturePrepareEarlyDumpData especificado.
ScsiAdapterRestoreEarlyDumpData
Reservado para uso del sistema. Disponible a partir de Windows 11, versión 22H2.

Storport envía este control solo si una miniport también ha llamado anteriormente StorPortSetFeatureList en su rutina HwFindAdapter con StorportFeatureRestoreEarlyDumpData especificado.
ScsiAdapterKsrPowerDown
Reservado para uso interno. No debe usarse.
ScsiAdapterPreparePLDR
Storport envía este control para notificar al miniporte que realice el trabajo necesario antes de invocar PLDR. Disponible a partir de Windows 11, versión 24H2.
ScsiNvmeofAdapterOperation
Indica si se admite ScsiNvmeofAdapterOperation. Disponible a partir de Windows 11, versión 24H2.
ScsiAdapterControlMax
Valor máximo del tipo de control.
MakeAdapterControlTypeSizeOfUlong
Convierte esta enumeración en el tamaño de un ULONG.

Comentarios

Un miniport informa de qué tipos de control admite cuando Storport llama a la rutina HwStorAdapterControl de la miniport con un tipo de control ScsiQuerySupportedControlTypes. Para esos tipos de control que admite la miniport, Storport llama a HwStorAdapterControl con un valor de SCSI_ADAPTER_CONTROL_TYPE para indicar la operación de control que especifica la operación de control del adaptador que va a realizar el miniport.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8
Encabezado storport.h

Consulte también

HwStorAdapterControl