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 |
---|---|
|
Nenhuma funcionalidade foi especificada. |
|
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. |
|
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. |
|
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. |
|
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.
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.
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