SCSI_PNP_REQUEST_BLOCK structure (minitape.h)
La structureSCSI_PNP_REQUEST_BLOCK est une version spéciale d’une SCSI_REQUEST_BLOCK utilisée pour les demandes plug-and-play (PNP).
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 à exécuter. Pour la structure SCSI_PNP_REQUEST_BLOCK , ce membre est toujours défini sur SRB_FUNCTION_PNP.
SrbStatus
Status de la demande terminée. Le pilote miniport doit définir cette valeur avant d’informer le pilote Storport que la demande est terminée. Un pilote miniport informe le pilote Storport que la demande est terminée en appelant la routine StorPortNotification avec un type de notification RequestComplete. Pour obtenir la liste des valeurs de status possibles, consultez SCSI_REQUEST_BLOCK.
PnPSubFunction
Ce membre n’est actuellement pas utilisé. Les pilotes miniport ignorent ce membre.
PathId
Identificateur de bus ou de port SCSI pour la demande. 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, pendant lequel la demande peut s’exécuter avant que le pilote Storport détermine que la requête 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 a défini SrbExtensionSize sur zéro dans la structure HW_INITIALIZATION_DATA . Le pilote Storport n’initialise pas la mémoire vers laquelle pointe ce membre. 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 requête PNP concerne l’adaptateur, et non l’un des appareils de l’adaptateur. Si cet indicateur est défini, le pilote miniport doit ignorer les valeurs dans PathId, TargetId et Lun.
Reserved
Réservé pour le système.
Reserved4[16]
Réservé pour le système.
Remarques
Le pilote Storport envoie SCSI_PNP_REQUEST_BLOCK demandes à un pilote miniport pour informer 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 SRM au pilote miniport. HwStorBuildIo vérifie le membre Function 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.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | minitape.h (inclure Storport.h, Minitape.h, Srb.h) |