Compartilhar via


SW_DEVICE_CREATE_INFO estrutura (swdevicedef.h)

Descreve as informações que o PnP usa para criar o dispositivo de software.

Sintaxe

typedef struct _SW_DEVICE_CREATE_INFO {
  ULONG                     cbSize;
  PCWSTR                    pszInstanceId;
  PCZZWSTR                  pszzHardwareIds;
  PCZZWSTR                  pszzCompatibleIds;
  const GUID                *pContainerId;
  ULONG                     CapabilityFlags;
  PCWSTR                    pszDeviceDescription;
  PCWSTR                    pszDeviceLocation;
  const SECURITY_DESCRIPTOR *pSecurityDescriptor;
} SW_DEVICE_CREATE_INFO, *PSW_DEVICE_CREATE_INFO;

Membros

cbSize

O tamanho em bytes dessa estrutura. Use-o como um campo de versão. Inicialize-o para sizeof(SW_DEVICE_CREATE_INFO).

pszInstanceId

Uma cadeia de caracteres que representa a ID da instância parte da ID da instância do dispositivo . Esse valor é usado para IRP_MN_QUERY_IDBusQueryInstanceID . Como todos os dispositivos de software são considerados dispositivos "UniqueId", essa cadeia de caracteres deve ser um nome exclusivo para todos os dispositivos neste enumerador de dispositivo de software.

pszzHardwareIds

Uma lista de cadeias de caracteres para as IDs de hardware para o dispositivo de software. Esse valor é usado para IRP_MN_QUERY_IDBusQueryHardwareIDs. Se um cliente espera que um pacote de driver seja instalado no dispositivo, o cliente deverá especificar IDs de hardware.

pszzCompatibleIds

Uma lista de cadeias de caracteres para o IDs compatíveis para o dispositivo de software. Esse valor é usado para IRP_MN_QUERY_IDBusQueryCompatibleIDs. Se um cliente espera que um pacote de driver de classe seja instalado no dispositivo, o cliente especifica as IDs compatíveis que correspondem ao pacote de driver de classe. Se um pacote de driver não for necessário, recomendamos especificar uma ID compatível para classificar o tipo de dispositivo de software. Além das IDs compatíveis especificadas neste membro, SWD\Generic e possivelmente SWD\GenericRaw sempre serão adicionados como as IDs compatíveis menos específicas.

pContainerId

Um valor usado para controlar a ID do contêiner base para o dispositivo de software. Esse valor será usado para IRP_MN_QUERY_IDBusQueryContainerIDs. Para situações típicas, recomendamos definir esse membro como NULL e usar o sinalizador SWDeviceCapabilitiesRemovable para controlar se o dispositivo herda a ID do contêiner pai ou se o PnP atribui uma nova ID de contêiner aleatória. Consulte Visão geral da funcionalidade do dispositivo removível para obter mais informações sobre como isso afeta a atribuição da ID do contêiner para o dispositivo. Se o cliente precisar controlar explicitamente a ID do contêiner, especifique uma GUID na variável à qual esse membro aponta. Em geral, você não deve especificar NULL_GUID para a ID do contêiner. Consulte Visão geral das IDs de contêiner para obter mais informações sobre IDs de contêiner e o significado especial de NULL_GUID.

CapabilityFlags

Uma combinação de valores SW_DEVICE_CAPABILITIES combinados usando uma operação OR bit a bit. O valor resultante especifica os recursos do dispositivo de software. Os recursos que você pode especificar ao criar um dispositivo de software são um subconjunto dos recursos que um driver de ônibus pode especificar usando a estrutura DEVICE_CAPABILTIES. Somente recursos que fazem sentido para permitir a alteração para um dispositivo somente de software são compatíveis. O restante recebe valores padrão apropriados. Aqui estão os valores possíveis:

Valor Significado
SWDeviceCapabilitiesNone
0x00000000
Nenhuma funcionalidade foi especificada.
SWDeviceCapabilitiesRemovable
0x00000001
Esse bit especifica que o dispositivo é removível de seu pai. Definir esse sinalizador é equivalente a um driver de ônibus definindo o membro de removível da estrutura DEVICE_CAPABILTIES para um PDO.
SWDeviceCapabilitiesSilentInstall
0x00000002
Esse bit suprime a interface do usuário que normalmente seria mostrada durante a instalação. Definir esse sinalizador é equivalente a um driver de ônibus definindo o membro SilentInstall da estrutura DEVICE_CAPABILTIES para um PDO.
SWDeviceCapabilitiesNoDisplayInUI
0x00000004
Esse bit impede que o dispositivo seja exibido em alguma interface do usuário. Definir esse sinalizador é equivalente a um driver de ônibus definindo o membro NoDisplayInUI da estrutura DEVICE_CAPABILTIES para um PDO.
SWDeviceCapabilitiesDriverRequired
0x00000008
Especifique esse bit quando o cliente quiser que um driver seja carregado no dispositivo e quando esse driver for necessário para a função correta do recurso do cliente.

Quando esse bit for especificado, pelo menos um dos pszzHardwareIds ou pszzCompatibleIds deverá ser preenchido.

Se esse bit for especificado e se um driver não puder ser encontrado, o dispositivo mostrará um estrondo amarelo em Gerenciador de Dispositivos para indicar que o dispositivo tem um problema e solucionadores de problemas sinalizarão isso como um dispositivo com um problema. Definir esse bit é equivalente a um driver de ônibus que não configura o rawDeviceOK membro da estrutura DEVICE_CAPABILTIES para um PDO.

Quando esse bit é especificado, o driver é proprietário da criação de interfaces para o dispositivo e você não pode chamar SwDeviceInterfaceRegister para o dispositivo.

pszDeviceDescription

Uma cadeia de caracteres que contém o texto exibido para o nome do dispositivo na interface do usuário. Esse valor é usado para IRP_MN_QUERY_DEVICE_TEXTDeviceTextDescription.

de Observação  

Quando um INF é correspondido com o dispositivo, o nome do INF substitui esse nome, a menos que sejam tomadas etapas para preservar esse nome.

Recomendamos que essa cadeia de caracteres seja uma referência a um recurso localizável. Para obter a sintaxe dos recursos de referência, consulte DEVPROP_TYPE_STRING_INDIRECT.

 

pszDeviceLocation

Uma cadeia de caracteres que contém o texto exibido para o local do dispositivo na interface do usuário. Esse valor é usado para IRP_MN_QUERY_DEVICE_TEXTDeviceTextLocationInformation.

Observação Especificar um local é incomum.
 

pSecurityDescriptor

Um ponteiro para uma estrutura de SECURITY_DESCRIPTOR que contém as informações de segurança associadas ao dispositivo de software. Se esse membro estiver NULL, o gerenciador de E/S de atribuirá o descritor de segurança padrão ao dispositivo. Se um descritor de segurança personalizado for necessário, especifique um descritor de segurança auto-relativo.

Observações

Você só pode especificar essas informações no momento da criação e, posteriormente, não é possível chamar a API do Dispositivo de Software para modificar essas informações, definindo propriedades, por exemplo.

Requisitos

Requisito Valor
cabeçalho swdevicedef.h (include Swdevice.h)

Consulte também

SwDeviceCreate