Compartilhar via


estrutura SW_DEVICE_CREATE_INFO (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 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. Para obter mais informações, consulte IDs de instância.

pszzHardwareIds

Uma lista de cadeias de caracteres para as IDs de hardware do dispositivo de software. Esse valor é usado para IRP_MN_QUERY_IDBusQueryHardwareIDs. Se um cliente espera que um driver ou metadados de dispositivo se associe ao dispositivo, o cliente especifica as IDs de hardware.

pszzCompatibleIds

Uma lista de cadeias de caracteres para as IDs compatíveis para o dispositivo de software. Esse valor é usado para IRP_MN_QUERY_IDBusQueryCompatibleIDs. Se um cliente espera que um driver de classe seja carregado, o cliente especificará IDs compatíveis que correspondam ao driver de classe. Se um 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. Se o cliente precisar controlar explicitamente a ID do contêiner, especifique um GUID na variável para a qual esse membro aponta.

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. A funcionalidade que você pode especificar ao criar um dispositivo de software é um subconjunto dos recursos que um motorista de barramento pode especificar usando a estrutura DEVICE_CAPABILTIES . Há suporte apenas para recursos que fazem sentido para permitir a alteração de um dispositivo somente de software. O restante recebe os 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 barramento definindo o membro 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 barramento 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 barramento 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 é especificado, pelo menos um dos pszzHardwareIds ou pszzCompatibleIds deve 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 barramento não definir o membro RawDeviceOK 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.

Observação  

Quando um INF é correspondido com o dispositivo, o nome do INF substitui esse nome, a menos que sejam executadas 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.

Nota Especificar um local é incomum.
 

pSecurityDescriptor

Um ponteiro para uma estrutura SECURITY_DESCRIPTOR que contém as informações de segurança associadas ao dispositivo de software. Se esse membro for NULL, o Gerenciador de E/S 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.

Comentários

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 (inclua Swdevice.h)

Confira também

SwDeviceCreate