estrutura STOR_DEVICE_CAPABILITIES_EX (srb.h)
A estrutura STOR_DEVICE_CAPABILITIES_EX relata os recursos do dispositivo para o driver de porta SCSI em resposta a uma consulta de funcionalidades em um SRB (bloco de solicitação SCSI) com uma função de SRB_FUNCTION_PNP. STOR_DEVICE_CAPABILITIES é um subconjunto da estrutura DEVICE_CAPABILITIES que contém os membros relevantes para dispositivos de armazenamento.
Sintaxe
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;
Membros
Version
Especifica a versão da estrutura. Defina como STOR_DEVICE_CAPABILITIES_EX_VERSION_1 por Storport.
Size
Especifica o tamanho da estrutura. Defina como sizeof(STOR_DEVICE_CAPABILITIES_EX) por Storport.
DeviceD1
Especifica se o hardware do dispositivo dá suporte ao estado de energia D1. Os drivers de miniporta definem esse bit como 0.
DeviceD2
Especifica se o hardware do dispositivo dá suporte ao estado de energia D2. Os drivers de miniporta definem esse bit como 0.
LockSupported
Especifica se o dispositivo dá suporte ao bloqueio de dispositivo físico que impede a ejeção do dispositivo. Esse membro pertence à ejeção de um LUN ou de um dispositivo de unidade.
EjectSupported
Especifica se o dispositivo dá suporte à ejeção de dispositivo controlada por software enquanto o sistema está no estado PowerSystemWorking . Esse membro pertence à ejeção de um LUN ou dispositivo de unidade.
Removable
Especifica se o dispositivo pode ser removido dinamicamente de seu pai imediato. Se Removable for definido como TRUE:
- O dispositivo não pertence ao mesmo objeto físico que seu pai.
- O dispositivo é exibido no programa Desconectar ou Ejetar Hardware, a menos que SurpriseRemovalOK também esteja definido como TRUE.
DockDevice
Especifica se o dispositivo é um periférico de encaixe.
UniqueID
Especifica se a ID da instância do dispositivo é exclusiva em todo o sistema. Esse bit fica claro se a ID da instância é exclusiva somente dentro do escopo do barramento.
SilentInstall
Especifica se Gerenciador de Dispositivos deve suprimir todas as caixas de diálogo de instalação; exceto as caixas de diálogo necessárias, como "nenhum driver compatível encontrado".
RawDeviceOK
Especifica se o driver do barramento subjacente poderá conduzir o dispositivo se não houver nenhum driver de função (por exemplo, dispositivos SCSI no modo de passagem). Esse modo de operação é chamado de modo bruto.
SurpriseRemovalOK
Especifica se o driver de miniporto para o dispositivo pode lidar com o caso em que o dispositivo é removido antes que a porta SCSI possa enviar SRB_FUNCTION_PNP com StorRemoveDevice como pnPAction na estrutura SCSI_PNP_REQUEST_BLOCK . Se SurpriseRemovalOK estiver definido como TRUE, o dispositivo poderá ser removido com segurança de seu pai imediato, independentemente do estado em que o driver está.
NoDisplayInUI
Não exiba o dispositivo na interface do usuário. Se esse bit for definido, o dispositivo nunca será exibido na interface do usuário, mesmo que o dispositivo esteja presente, mas não seja iniciado. Os drivers de miniporta não definem esse bit.
DefaultWriteCacheEnabled
O cache de gravação do dispositivo de armazenamento é habilitado por padrão na inicialização.
Reserved0
Bits reservados.
Address
Endereço LUN do dispositivo de unidade de armazenamento.
UINumber
Especifica um número associado ao dispositivo que pode ser exibido na interface do usuário.
Esse número pode ser um valor de ID escolhido para facilitar a localização do dispositivo físico para o usuário. Quando uinumber é desconhecido, o driver de miniporto pode definir esse membro como seu valor padrão de 0xFFFFFFFF.
Reserved1[2]
Bits reservados.
Comentários
Quando um driver de miniporto recebe um SRB em sua rotina HwStorStartIo em que a função SRB é SRB_FUNCTION_PNP, o SRB é formatado como uma estrutura SCSI_PNP_REQUEST_BLOCK . Se o membro PnPAction do SRB for StorQueryCapabilities, o miniporto poderá retornar uma estrutura STOR_DEVICE_CAPABILITIES_EX no membro DataBuffer do SRB.
As características de ejeção, remoção e instalação do dispositivo são definidas na estrutura STOR_DEVICE_CAPABILITIES_EX . Para dar suporte ao uso dessa estrutura, o miniporto deve definir o sinalizador STOR_FEATURE_FULL_PNP_DEVICE_CAPABILITIES no membro de sinalizadores FeatureSupport em HW_INITIALIZATION_DATA (SCSI) antes de chamar ScsiPortInitialize.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Disponível a partir do Windows 8. |
Cabeçalho | srb.h (inclua Storport.h, Minitape.h, Srb.h) |