struttura SW_DEVICE_CREATE_INFO (swdevicedef.h)
Descrive le informazioni usate da PnP per creare il dispositivo software.
Sintassi
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;
Membri
cbSize
Dimensione in byte di questa struttura. Usarlo come campo di versione. Inizializzarlo in sizeof(SW_DEVICE_CREATE_INFO).
pszInstanceId
Stringa che rappresenta l'ID istanza parte dell'ID istanza del dispositivo . Questo valore viene usato per IRP_MN_QUERY_IDBusQueryInstanceID. Poiché tutti i dispositivi software sono considerati dispositivi "UniqueId", questa stringa deve essere un nome univoco per tutti i dispositivi in questo enumeratore di dispositivi software.
pszzHardwareIds
Elenco di stringhe per gli ID hardware per il dispositivo software. Questo valore viene usato per IRP_MN_QUERY_IDBusQueryHardwareIDs. Se un client prevede l'installazione di un pacchetto driver nel dispositivo, il client deve specificare gli ID hardware.
pszzCompatibleIds
Elenco di stringhe per gli ID compatibili per il dispositivo software. Questo valore viene usato per IRP_MN_QUERY_IDBusQueryCompatibleIDs. Se un client prevede l'installazione di un pacchetto driver di classe nel dispositivo, il client specifica ID compatibili che corrispondono al pacchetto driver di classe. Se non è necessario un pacchetto driver, è consigliabile specificare un ID compatibile per classificare il tipo di dispositivo software. Oltre agli ID compatibili specificati in questo membro, SWD\Generic
e possibilmente SWD\GenericRaw
verranno sempre aggiunti come ID meno specifici compatibili.
pContainerId
Valore utilizzato per controllare l'ID contenitore di base per il dispositivo software. Questo valore verrà usato per IRP_MN_QUERY_IDBusQueryContainerIDs. Per situazioni tipiche, è consigliabile impostare questo membro su NULL e usare il flag SWDeviceCapabilitiesRemovable per controllare se il dispositivo eredita l'ID contenitore dell'elemento padre o se PnP assegna un nuovo ID contenitore casuale. Per altre informazioni su come influisce sull'assegnazione dell'ID contenitore per il dispositivo, vedere Panoramica della funzionalità di dispositivo rimovibile. Se il client deve controllare in modo esplicito l'ID contenitore, specificare un GUID nella variabile a cui punta questo membro. In generale, non è consigliabile specificare NULL_GUID per l'ID contenitore. Per altre informazioni sugli ID contenitore e sul significato speciale di NULL_GUID, vedere Panoramica degli ID contenitore.
CapabilityFlags
Combinazione di valori SW_DEVICE_CAPABILITIES combinati tramite un'operazione OR bit per bit. Il valore risultante specifica le funzionalità del dispositivo software. Le funzionalità che è possibile specificare quando si crea un dispositivo software sono un subset delle funzionalità che un driver del bus può specificare usando la struttura DEVICE_CAPABILTIES. Sono supportate solo le funzionalità che hanno senso per consentire la modifica per un dispositivo solo software. Il resto riceve i valori predefiniti appropriati. Di seguito sono riportati i valori possibili:
Valore | Significato |
---|---|
|
Non sono state specificate funzionalità. |
|
Questo bit specifica che il dispositivo è rimovibile dal relativo elemento padre. L'impostazione di questo flag equivale a un driver del bus che imposta il membro rimovibile |
|
Questo bit elimina l'interfaccia utente che normalmente viene visualizzata durante l'installazione. L'impostazione di questo flag equivale a un driver del bus che imposta il membro SilentInstall della struttura DEVICE_CAPABILTIES per un PDO. |
|
Questo bit impedisce la visualizzazione del dispositivo in un'interfaccia utente. L'impostazione di questo flag equivale a un driver del bus che imposta il membro di |
|
Specificare questo bit quando il client vuole caricare un driver nel dispositivo e quando questo driver è necessario per la corretta funzione della funzionalità del client.
Quando si specifica questo bit, è necessario compilare almeno uno dei pszzHardwareIds o pszzCompatibleIds. Se questo bit viene specificato e se non è possibile trovare un driver, il dispositivo mostra un bang giallo in Gestione dispositivi per indicare che il dispositivo presenta un problema e gli strumenti di risoluzione dei problemi segnalano questo problema come dispositivo. L'impostazione di questo bit equivale a un driver del bus che non imposta il membro RawDeviceOK della struttura DEVICE_CAPABILTIES per un PDO. Quando si specifica questo bit, il driver è proprietario della creazione di interfacce per il dispositivo e non è possibile chiamare SwDeviceInterfaceRegister per il dispositivo. |
pszDeviceDescription
Stringa che contiene il testo visualizzato per il nome del dispositivo nell'interfaccia utente. Questo valore viene usato per IRP_MN_QUERY_DEVICE_TEXTDeviceTextDescription.
Quando un INF viene confrontato con il dispositivo, il nome dell'INF esegue l'override di questo nome, a meno che non vengano eseguiti passaggi per mantenere questo nome.
È consigliabile che questa stringa sia un riferimento a una risorsa localizzabile. Per la sintassi di riferimento alle risorse, vedere DEVPROP_TYPE_STRING_INDIRECT.
pszDeviceLocation
Stringa che contiene il testo visualizzato per la posizione del dispositivo nell'interfaccia utente. Questo valore viene usato per IRP_MN_QUERY_DEVICE_TEXTDeviceTextLocationInformation.
pSecurityDescriptor
Puntatore a una struttura SECURITY_DESCRIPTOR che contiene le informazioni di sicurezza associate al dispositivo software. Se questo membro è
Osservazioni
Puoi specificare queste informazioni solo in fase di creazione e non puoi chiamare successivamente l'API del dispositivo software per modificare queste informazioni, impostando ad esempio le proprietà.
Fabbisogno
Requisito | Valore |
---|---|
intestazione |
swdevicedef.h (include Swdevice.h) |