Partager via


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.

Voir aussi

HwStorAdapterControl

SCSI_SUPPORTED_CONTROL_TYPE_LIST

SCSI_UNIT_CONTROL_TYPE