structure SCSI_PNP_REQUEST_BLOCK (srb.h)
La structureSCSI_PNP_REQUEST_BLOCK est une version spéciale d’un SCSI_REQUEST_BLOCK utilisé pour les requêtes PNP (Plug-and-Play).
Syntaxe
typedef struct _SCSI_PNP_REQUEST_BLOCK {
USHORT Length;
UCHAR Function;
UCHAR SrbStatus;
UCHAR PnPSubFunction;
UCHAR PathId;
UCHAR TargetId;
UCHAR Lun;
STOR_PNP_ACTION PnPAction;
ULONG SrbFlags;
ULONG DataTransferLength;
ULONG TimeOutValue;
PVOID DataBuffer;
PVOID SenseInfoBuffer;
struct _SCSI_REQUEST_BLOCK *NextSrb;
PVOID OriginalRequest;
PVOID SrbExtension;
ULONG SrbPnPFlags;
ULONG Reserved;
UCHAR Reserved4[16];
} SCSI_PNP_REQUEST_BLOCK, *PSCSI_PNP_REQUEST_BLOCK;
Membres
Length
Taille, en octets, de la structure SCSI_PNP_REQUEST_BLOCK.
Function
Opération à effectuer. Pour la structure SCSI_PNP_REQUEST_BLOCK, ce membre est toujours défini sur SRB_FUNCTION_PNP.
SrbStatus
État de la demande terminée. Le pilote miniport doit définir cette valeur avant d’avertir 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 routine StorPortNotification avec un type de notification RequestComplete. Pour obtenir la liste des valeurs d’état possibles, consultez SCSI_REQUEST_BLOCK.
PnPSubFunction
Ce membre n’est pas utilisé actuellement. Les pilotes miniport ignorent ce membre.
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.
PnPAction
Action plug-and-play à effectuer. Ce membre peut avoir l’une des valeurs suivantes :
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.
SrbPnPFlags
Indicateurs PNP. Actuellement, le seul indicateur autorisé est SRB_PNP_FLAGS_ADAPTER_REQUEST, ce qui indique que la demande PNP concerne l’adaptateur, et non pour l’un des appareils de l’adaptateur. Si cet indicateur est défini, le pilote miniport doit ignorer les valeurs du PathId, TargetIdet Lun.
Reserved
Réservé à l’utilisation du système.
Reserved4[16]
Réservé à l’utilisation du système.
Remarques
Le pilote Storport envoie SCSI_PNP_REQUEST_BLOCK demandes à un pilote miniport pour notifier le pilote miniport des événements windows plug-and-play qui affectent les périphériques de stockage connectés à l’adaptateur.
Le pilote Storport appelle HwStorBuildIo pour passer des bases de données SRB au pilote miniport. HwStorBuildIo vérifie le membre de fonction du SRB pour déterminer le type du SRB. Si le membre function est défini sur SRB_FUNCTION_PNP, le SRB est une structure de type SCSI_PNP_REQUEST_BLOCK.
Exigences
Exigence | Valeur |
---|---|
d’en-tête | srb.h (include Storport.h, Minitape.h, Srb.h) |