estructura SW_DEVICE_CREATE_INFO (swdevicedef.h)
Describe información que PnP usa para crear el dispositivo de software.
Sintaxis
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;
Miembros
cbSize
Tamaño en bytes de esta estructura. Úselo como campo de versión. Inicialícelo en sizeof(SW_DEVICE_CREATE_INFO).
pszInstanceId
Cadena que representa el identificador de instancia de parte del identificador de instancia de dispositivo . Este valor se usa para IRP_MN_QUERY_IDBusQueryInstanceID. Dado que todos los dispositivos de software se consideran dispositivos "UniqueId", esta cadena debe ser un nombre único para todos los dispositivos de este enumerador de dispositivos de software.
pszzHardwareIds
Lista de cadenas para los identificadores de hardware de para el dispositivo de software. Este valor se usa para IRP_MN_QUERY_IDBusQueryHardwareIDs. Si un cliente espera que se instale un paquete de controladores en el dispositivo, el cliente debe especificar identificadores de hardware.
pszzCompatibleIds
Lista de cadenas para los identificadores compatibles para el dispositivo de software. Este valor se usa para IRP_MN_QUERY_IDBusQueryCompatibleIDs. Si un cliente espera que se instale un paquete de controladores de clase en el dispositivo, el cliente especifica identificadores compatibles que coinciden con el paquete de controladores de clase. Si no se necesita un paquete de controladores, se recomienda especificar un identificador compatible para clasificar el tipo de dispositivo de software. Además de los identificadores compatibles especificados en este miembro, SWD\Generic
y, posiblemente, SWD\GenericRaw
siempre se agregarán como identificadores menos específicos compatibles.
pContainerId
Valor que se usa para controlar el identificador de contenedor base para el dispositivo de software. Este valor se usará para IRP_MN_QUERY_IDBusQueryContainerIDs. Para situaciones típicas, se recomienda establecer este miembro en NULL y usar la marca SWDeviceCapabilitiesRemovable para controlar si el dispositivo hereda el identificador de contenedor primario o si PnP asigna un nuevo identificador de contenedor aleatorio. Consulte Información general sobre la funcionalidad del dispositivo extraíble para obtener más información sobre cómo afecta a la asignación del identificador de contenedor para el dispositivo. Si el cliente necesita controlar explícitamente el identificador de contenedor, especifique un guid de en la variable a la que apunta este miembro. En general, no debe especificar NULL_GUID para el identificador de contenedor. Consulte Información general sobre los identificadores de contenedor para obtener más información sobre los identificadores de contenedor y el significado especial de NULL_GUID.
CapabilityFlags
Combinación de SW_DEVICE_CAPABILITIES valores que se combinan mediante una operación OR bit a bit. El valor resultante especifica las funcionalidades del dispositivo de software. Las funcionalidades que puede especificar al crear un dispositivo de software son un subconjunto de las funcionalidades que un controlador de bus puede especificar mediante la estructura DEVICE_CAPABILTIES. Solo se admiten las funcionalidades que tienen sentido permitir el cambio de un dispositivo solo de software. El resto recibe los valores predeterminados adecuados. Estos son los valores posibles:
Valor | Significado |
---|---|
|
No se ha especificado ninguna funcionalidad. |
|
Este bit especifica que el dispositivo se puede quitar de su elemento primario. Establecer esta marca es equivalente a un controlador de bus que establece el miembro extraíble de |
|
Este bit suprime la interfaz de usuario que normalmente se mostraría durante la instalación. Establecer esta marca es equivalente a un controlador de bus que establece el miembro SilentInstall de la estructura de DEVICE_CAPABILTIES para un PDO. |
|
Este bit impide que el dispositivo se muestre en alguna interfaz de usuario. Establecer esta marca es equivalente a un controlador de bus que establece el miembro noDisplayInUI de la estructura de DEVICE_CAPABILTIES para un PDO. |
|
Especifique este bit cuando el cliente quiere que se cargue un controlador en el dispositivo y cuando este controlador sea necesario para la función correcta de la característica del cliente.
Cuando se especifica este bit, se debe rellenar al menos uno de los pszzHardwareIds o pszzCompatibleIds. Si se especifica este bit y si no se encuentra un controlador, el dispositivo muestra una explosión amarilla en Administrador de dispositivos para indicar que el dispositivo tiene un problema y solucionadores de problemas marca esto como un dispositivo con un problema. Establecer este bit equivale a que un controlador de bus no establezca el miembro RawDeviceOK de la estructura de DEVICE_CAPABILTIES para un PDO. Cuando se especifica este bit, el controlador posee interfaces para el dispositivo y no puede llamar a SwDeviceInterfaceRegister para el dispositivo. |
pszDeviceDescription
Cadena que contiene el texto que se muestra para el nombre del dispositivo en la interfaz de usuario. Este valor se usa para IRP_MN_QUERY_DEVICE_TEXTDeviceTextDescription.
Cuando se compara un INF con el dispositivo, el nombre del INF invalida este nombre a menos que se realicen pasos para conservar este nombre.
Se recomienda que esta cadena sea una referencia a un recurso localizable. Para obtener la sintaxis de hacer referencia a recursos, consulte DEVPROP_TYPE_STRING_INDIRECT.
pszDeviceLocation
Cadena que contiene el texto que se muestra para la ubicación del dispositivo en la interfaz de usuario. Este valor se usa para IRP_MN_QUERY_DEVICE_TEXTdeviceTextLocationInformation.
pSecurityDescriptor
Puntero a una estructura de SECURITY_DESCRIPTOR que contiene la información de seguridad asociada al dispositivo de software. Si este miembro es
Observaciones
Solo puede especificar esta información en el momento de la creación y no puede llamar más adelante a la API de dispositivos de software para modificar esta información estableciendo propiedades, por ejemplo.
Requisitos
Requisito | Valor |
---|---|
encabezado de |
swdevicedef.h (include Swdevice.h) |