Partager via


structure SCSI_POWER_REQUEST_BLOCK (minitape.h)

La structure SCSI_POWER_REQUEST_BLOCK est une version spéciale d’un SCSI_REQUEST_BLOCK utilisé pour les demandes de gestion de l’alimentation.

Remarque Le pilote de port SCSI et les modèles de pilotes miniport SCSI peuvent être modifiés ou indisponibles à l’avenir. Au lieu de cela, nous vous recommandons d’utiliser le du pilote Storport et modèles de pilotes Storport miniport.
 

Syntaxe

typedef struct _SCSI_POWER_REQUEST_BLOCK {
  USHORT                     Length;
  UCHAR                      Function;
  UCHAR                      SrbStatus;
  UCHAR                      SrbPowerFlags;
  UCHAR                      PathId;
  UCHAR                      TargetId;
  UCHAR                      Lun;
  STOR_DEVICE_POWER_STATE    DevicePowerState;
  ULONG                      SrbFlags;
  ULONG                      DataTransferLength;
  ULONG                      TimeOutValue;
  PVOID                      DataBuffer;
  PVOID                      SenseInfoBuffer;
  struct _SCSI_REQUEST_BLOCK *NextSrb;
  PVOID                      OriginalRequest;
  PVOID                      SrbExtension;
  STOR_POWER_ACTION          PowerAction;
  ULONG                      Reserved;
  UCHAR                      Reserved5[16];
} SCSI_POWER_REQUEST_BLOCK, *PSCSI_POWER_REQUEST_BLOCK;

Membres

Length

Taille, en octets, de la structure SCSI_POWER_REQUEST_BLOCK.

Function

Opération à effectuer. Pour la structure SCSI_POWER_REQUEST_BLOCK, ce membre est toujours défini sur SRB_FUNCTION_POWER.

SrbStatus

État de la demande terminée. Ce membre doit être défini par le pilote miniport avant qu’il informe le pilote Storport que la demande est terminée. Un pilote miniport informe le pilote Storport que la requête est terminée en appelant la fonction StorPortNotification avec le type de notification RequestComplete.

Consultez SCSI_REQUEST_BLOCK dans la documentation WDK pour obtenir la liste des valeurs possibles pour ce membre.

SrbPowerFlags

Indicateurs de gestion de l’alimentation. Actuellement, le seul indicateur autorisé est SRB_POWER_FLAGS_ADAPTER_REQUEST, ce qui indique que la demande de gestion de l’alimentation concerne l’adaptateur. Si cet indicateur est défini, le pilote miniport doit ignorer les valeurs du PathId, TargetIdet Lun.

PathId

Identificateur de bus ou de port SCSI pour la requête. Cette valeur est basée sur zéro.

TargetId

Le contrôleur cible ou l’identificateur d’appareil sur le bus.

Lun

Numéro d’unité logique (LUN) de l’appareil.

DevicePowerState

Valeur d’énumérateur de type STOR_DEVICE_POWER_STATE qui spécifie l’état d’alimentation demandé de l’appareil.

SrbFlags

Le pilote Miniport doit ignorer ce membre.

DataTransferLength

Le pilote Miniport doit ignorer ce membre.

TimeOutValue

Intervalle, en secondes, que la requête peut s’exécuter avant que le pilote Storport détermine que la demande a expiré.

DataBuffer

Le pilote Miniport doit ignorer ce membre.

SenseInfoBuffer

Le pilote Miniport doit ignorer ce membre.

NextSrb

Le pilote Miniport doit ignorer ce membre.

OriginalRequest

Le pilote Miniport doit ignorer ce membre.

SrbExtension

Pointeur vers l’extension SRB. Un pilote miniport ne doit pas utiliser ce membre s’il définit SrbExtensionSize sur zéro dans la structure HW_INITIALIZATION_DATA. Le pilote Storport n’initialise pas la mémoire vers laquelle ce membre pointe. L’adaptateur HBA peut accéder directement aux données que le pilote miniport écrit dans l’extension SRB. Un pilote miniport peut obtenir l’adresse physique de l’extension SRB en appelant la routine StorPortGetPhysicalAddress.

PowerAction

Valeur d’énumérateur de type STOR_POWER_ACTION qui spécifie le type d’arrêt du système sur le point de se produire. Cette valeur n’est significative que si l’appareil passe à l’état d’alimentation D1, D2 ou D3, comme indiqué par le membre DevicePowerState.

Reserved

Réservé à l’utilisation du système.

Reserved5[16]

Réservé à l’utilisation du système.

Remarques

Le pilote Storport appelle HwStorBuildIo pour passer des bases de données SRB au pilote miniport. HwStorBuildIo doit vérifier le membre de fonction du SRB pour déterminer le type du SRB. Si le membre function est défini sur SRB_FUNCTION_POWER, le SRB est une structure de type SCSI_POWER_REQUEST_BLOCK.

Le pilote Storport envoie SCSI_POWER_REQUEST_BLOCK demandes à un pilote miniport pour notifier le pilote miniport des événements d’alimentation Windows qui affectent les périphériques de stockage connectés à l’adaptateur. Dans le cas d’un événement de mise en tension, cette demande donne au pilote miniport une opportunité d’initialiser elle-même. Dans le cas d’un événement de mise en veille prolongée ou d’arrêt, cette demande donne au pilote miniport l’occasion d’effectuer des demandes d’E/S et de se préparer à une panne d’alimentation. Le pilote miniport peut utiliser la valeur dans le membre PowerAction du SCSI_POWER_REQUEST_BLOCK pour déterminer les actions requises. Une fois que le pilote miniport a terminé la requête de SCSI_POWER_REQUEST_BLOCK, le pilote Storport appelle HwScsiAdapterControl avec une demande de contrôle de ScsiStopAdapter pour mettre hors tension l’adaptateur. Le pilote miniport réinitialise lors du traitement de la requête SRB_FUNCTION_POWER, ou peut attendre et réinitialiser lorsque le pilote Storport appelle HwStorAdapterControl pour effectuer une demande de contrôle ScsiRestartAdapter.

Lorsque vous passez de l’état d’alimentation D0 à un état moins alimenté (D1, D2 ou D3), le pilote Storport envoie une demande de SCSI_POWER_REQUEST_BLOCK au pilote miniport avant que le pilote de bus sous-jacent n’alimente l’adaptateur.

Les conditions suivantes doivent exister avant que le pilote Storport envoie une demande de SCSI_POWER_REQUEST_BLOCK au pilote miniport :

  • L’adaptateur n’est pas arrêté.
  • La file d’attente d’E/S de l’adaptateur est suspendue.
  • Le matériel de l’adaptateur est alimenté.
  • Le miniport peut accéder aux ressources matérielles de l’adaptateur.

Exigences

Exigence Valeur
d’en-tête minitape.h (include Storport.h, Minitape.h, Srb.h)

Voir aussi

HwStorBuildIo

SCSI_REQUEST_BLOCK

StorPortNotification