HW_UNIT_CONTROL fonction de rappel (storport.h)
La routine HwStorUnitControl d’un pilote miniport est appelée pour effectuer des opérations synchrones afin de contrôler l’état du périphérique d’unité de stockage.
Syntaxe
HW_UNIT_CONTROL HwUnitControl;
SCSI_UNIT_CONTROL_STATUS HwUnitControl(
[in] PVOID DeviceExtension,
[in] SCSI_UNIT_CONTROL_TYPE ControlType,
[in] PVOID Parameters
)
{...}
Paramètres
[in] DeviceExtension
Pointeur vers la zone de stockage par unité du pilote miniport.
[in] ControlType
Valeur SCSI_UNIT_CONTROL_TYPE qui spécifie une opération de contrôle d’unité, où chaque type de contrôle initie une action par le pilote miniport. Pour plus d’informations, consultez SCSI_UNIT_CONTROL_TYPE .
[in] Parameters
Pointeur vers une structure ou une valeur qui contient des informations relatives au ControlType. Toutes les structures sont allouées par l’appelant. Pour plus d’informations, consultez SCSI_UNIT_CONTROL_TYPE .
Adresse
Adresse de l’unité pour laquelle l’opération de contrôle est spécifiée.
Valeur retournée
Selon le type de contrôle, HwStorUnitControl retourne l’une des valeurs SCSI_UNIT_CONTROL_STATUS suivantes :
Code de retour | Description |
---|---|
ScsiUnitControlSuccess | Le pilote miniport a effectué l’opération demandée avec succès. |
ScsiUnitControlUnsuccessful | L’opération de contrôle d’unité n’a pas réussi. |
Remarques
Storport appelle HwStorUnitControl d’un miniport avec un type de contrôle ScsiQuerySupportedControlTypes après l’initialisation du HBA, mais avant la première E/S. Le pilote miniport remplit la structure SCSI_SUPPORTED_CONTROL_TYPE_LIST dans Paramètres avec les opérations qu’il prend en charge. Une fois que HwStorUnitControl est retourné à partir de cet appel, le pilote Storport appelle le rappel HwStorAdapterControl du pilote miniport uniquement pour les opérations prises en charge par le miniport.
Storport appelle HwStorUnitControl pour informer le pilote miniport d’une modification apportée au périphérique d’unité identifié par Address, ou que le miniport doit effectuer une requête ou définir une opération sur cette unité, comme le démarrage d’une unité ou la gestion d’une opération de contrôle d’alimentation pour une unité.
Le tableau suivant répertorie l’IRQL actuel et le verrouillage tournant acquis lors de l’émission du type de contrôle.
Type de contrôle | IRQL | Verrouillage de rotation |
---|---|---|
ScsiQuerySupportedControlTypes | PASSIVE_LEVEL | None |
ScsiUnitUsage | PASSIVE_LEVEL | None |
ScsiUnitStart | PASSIVE_LEVEL | None |
ScsiUnitPower | DISPATCH_LEVEL | None |
ScsiUnitPoFxPowerInfo | PASSIVE_LEVEL | None |
ScsiUnitPoFxPowerRequired | DISPATCH_LEVEL | None |
ScsiUnitPoFxPowerActive | DISPATCH_LEVEL | None |
ScsiUnitPoFxPowerSetFState | DISPATCH_LEVEL | None |
ScsiUnitPoFxPowerControl | DISPATCH_LEVEL | None |
ScsiUnitRemove | PASSIVE_LEVEL | None |
ScsiUnitSurpriseRemoval | PASSIVE_LEVEL | None |
ScsiUnitRichDescription | PASSIVE_LEVEL | None |
ScsiUnitQueryBusType | PASSIVE_LEVEL | None |
ScsiUnitQueryFruId | PASSIVE_LEVEL | None |
Le nom HwStorUnitControl n’est qu’un espace réservé. Le prototype réel de cette routine est défini dans storport.h comme suit :
typedef
SCSI_UNIT_CONTROL_STATUS
HW_UNIT_CONTROL (
_In_ PVOID DeviceExtension,
_In_ SCSI_UNIT_CONTROL_TYPE ControlType,
_In_ PVOID Parameters
);
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 8 |
Plateforme cible | Universal |
En-tête | storport.h (inclure Storport.h) |
IRQL | Consultez la section Notes. |