Partager via


structure STOR_DEVICE_CAPABILITIES_EX (srb.h)

La structure STOR_DEVICE_CAPABILITIES_EX signale les fonctionnalités de l’appareil au pilote de port SCSI en réponse à une requête de fonctionnalités dans un bloc de requête SCSI (SRB) avec une fonction de SRB_FUNCTION_PNP. STOR_DEVICE_CAPABILITIES est un sous-ensemble de la structure DEVICE_CAPABILITIES contenant les membres pertinents pour les appareils de stockage.

Syntaxe

typedef struct _STOR_DEVICE_CAPABILITIES_EX {
  USHORT Version;
  USHORT Size;
  ULONG  DeviceD1 : 1;
  ULONG  DeviceD2 : 1;
  ULONG  LockSupported : 1;
  ULONG  EjectSupported : 1;
  ULONG  Removable : 1;
  ULONG  DockDevice : 1;
  ULONG  UniqueID : 1;
  ULONG  SilentInstall : 1;
  ULONG  RawDeviceOK : 1;
  ULONG  SurpriseRemovalOK : 1;
  ULONG  NoDisplayInUI : 1;
  ULONG  DefaultWriteCacheEnabled : 1;
  ULONG  Reserved0 : 20;
  ULONG  Address;
  ULONG  UINumber;
  ULONG  Reserved1[2];
} STOR_DEVICE_CAPABILITIES_EX, *PSTOR_DEVICE_CAPABILITIES_EX;

Membres

Version

Spécifie la version de la structure. Défini sur STOR_DEVICE_CAPABILITIES_EX_VERSION_1 par Storport.

Size

Spécifie la taille de la structure. Défini sur sizeof(STOR_DEVICE_CAPABILITIES_EX) par Storport.

DeviceD1

Spécifie si le matériel de l’appareil prend en charge l’état d’alimentation D1. Les pilotes miniport définissent ce bit sur 0.

DeviceD2

Spécifie si le matériel de l’appareil prend en charge l’état d’alimentation D2. Les pilotes miniport définissent ce bit sur 0.

LockSupported

Spécifie si l’appareil prend en charge le verrouillage physique de l’appareil qui empêche l’éjection de l’appareil. Ce membre concerne l’éjection d’une LUN ou d’un appareil d’unité.

EjectSupported

Spécifie si l’appareil prend en charge l’éjection d’appareil contrôlée par logiciel lorsque le système est à l’état PowerSystemWorking . Ce membre concerne l’éjection d’un lun ou d’un appareil d’unité.

Removable

Spécifie si l’appareil peut être supprimé dynamiquement de son parent immédiat. Si Amovible a la valeur TRUE :

  • L’appareil n’appartient pas au même objet physique que son parent.
  • L’appareil s’affiche dans le programme Débrancher ou éjecter le matériel, sauf si SurpriseRemovalOK est également défini sur TRUE.

DockDevice

Spécifie si l’appareil est un périphérique d’ancrage.

UniqueID

Spécifie si l’ID de instance de l’appareil est unique à l’échelle du système. Ce bit est clair si l’ID instance est unique uniquement dans l’étendue du bus.

SilentInstall

Spécifie si Gestionnaire de périphériques devez supprimer toutes les boîtes de dialogue d’installation, à l’exception des boîtes de dialogue obligatoires telles que « aucun pilote compatible trouvé ».

RawDeviceOK

Spécifie si le pilote du bus sous-jacent peut conduire l’appareil s’il n’existe aucun pilote de fonction (par exemple, les périphériques SCSI en mode pass-through). Ce mode d’opération est appelé mode brut.

SurpriseRemovalOK

Spécifie si le pilote miniport de l’appareil peut gérer le cas où l’appareil est supprimé avant que le port SCSI ne puisse envoyer SRB_FUNCTION_PNP avec StorRemoveDevice en tant que PnPAction dans la structure SCSI_PNP_REQUEST_BLOCK . Si SurpriseRemovalOK a la valeur TRUE, l’appareil peut être supprimé en toute sécurité de son parent immédiat, quel que soit l’état dans lequel se trouve son pilote.

NoDisplayInUI

N’affichez pas l’appareil dans l’interface utilisateur. Si ce bit est défini, l’appareil n’est jamais affiché dans l’interface utilisateur, même si l’appareil est présent mais ne parvient pas à démarrer. Les pilotes miniport ne définissent pas ce bit.

DefaultWriteCacheEnabled

Le cache d’écriture du périphérique de stockage est activé par défaut lors de l’initialisation.

Reserved0

Bits réservés.

Address

Adresse LUN du périphérique d’unité de stockage.

UINumber

Spécifie un nombre associé à l’appareil qui peut être affiché dans l’interface utilisateur.

Ce nombre peut être une valeur d’ID choisie pour faciliter la localisation de l’appareil physique pour l’utilisateur. Lorsque l’UINumber est inconnu, le pilote miniport peut définir ce membre sur sa valeur par défaut 0xFFFFFFFF.

Reserved1[2]

Bits réservés.

Remarques

Lorsqu’un pilote miniport reçoit un SRB dans sa routine HwStorStartIo où la fonction SRB est SRB_FUNCTION_PNP, le SRB est mis en forme en tant que structure SCSI_PNP_REQUEST_BLOCK . Si le membre PnPAction du SRB est StorQueryCapabilities, le miniport peut retourner une structure STOR_DEVICE_CAPABILITIES_EX dans le membre DataBuffer du SRB.

Les caractéristiques d’éjection, de suppression et d’installation de l’appareil sont définies dans la structure STOR_DEVICE_CAPABILITIES_EX . Pour prendre en charge l’utilisation de cette structure, le miniport doit définir l’indicateur STOR_FEATURE_FULL_PNP_DEVICE_CAPABILITIES dans le membre des indicateurs FeatureSupport dans HW_INITIALIZATION_DATA (SCSI) avant d’appeler ScsiPortInitialize.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible à partir de Windows 8.
En-tête srb.h (incluent Storport.h, Minitape.h, Srb.h)

Voir aussi

DEVICE_CAPABILITIES

HW_INITIALIZATION_DATA (SCSI)

SCSI_PNP_REQUEST_BLOCK

ScsiPortInitialize