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 |
---|---|
|
Nenhuma funcionalidade foi especificada. |
|
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. |
|
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. |
|
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. |
|
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.
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.
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
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de