Questa è la mia altra domanda su IMAPI2 è possibile identificare se un'unità DVD/CD è virtuale e non fisica?Come identificare se un'unità è virtuale o fisica
risposta
Lo scopo di un'unità virtuale è agire esattamente come la controparte fisica, senza il supporto fisico. Entrambi i tipi di unità funzionano con il sistema operativo allo stesso modo di un driver di periferica. Dubito fortemente che la differenza tra loro sarebbe visibile all'interno dell'API Win32. Ciò sarebbe contro-intuitivo allo scopo dell'unità virtuale.
Ho esaminato le informazioni fornite da WMI (che è accessibile in C#) e ho trovato qualcosa di interessante. L'ID del dispositivo del mio disco virtuale è iniziato con "SCSI" mentre l'ID del dispositivo del mio disco SATA fisico è iniziato con "IDE". Credo che la maggior parte di (tutti?) Il software delle unità virtuali emuli un'unità SCSI; Non ne sono sicuro. In genere, un utente avrebbe o un disco ottico IDE o SATA che avrebbe entrambi un id che inizia con "IDE".
Virtual Drive Device: "SCSI\CDROM&VEN_ELBY&PROD_CLONEDRIVE&REV_1.4\1&00000000&0&000000"
Real Drive Device: "IDE\CDROMASUS_DRW-24B1ST_________________________1.03____\5&295AF142&0&5.0.0"
Nota nei miei ID dispositivo di esempio che l'unità virtuale è chiaramente identificata come il software Clone Drive. È possibile controllare il produttore e il nome del prodotto confrontandoli con un elenco noto di software di unità virtuale. Questo potrebbe produrre molti falsi negativi ed essere molto difficili da mantenere.
In entrambi i casi, non sono sicuro che la ricerca di funzionalità nell'id del dispositivo sarebbe una soluzione altamente affidabile. Potrebbero esserci unità virtuali che si identificano in modo diverso. Ho testato solo Clone Drive e Daemon Tools nella ricerca della tua domanda.
Se si dovesse utilizzare questo approccio per la protezione del copyright (per quale altro motivo si utilizzerebbe?), È necessario considerare se la possibilità di una determinazione di un'unità virtuale falsa valga la pena di irritare i propri clienti.
Questo è il codice C# per l'ispezione delle unità tramite WMI e accesso all'ID del dispositivo. Sarà necessario fare riferimento all'assembly System.Management.
string driveLetter = "F";
ManagementObjectSearcher diskQuery = new ManagementObjectSearcher(String.Format("SELECT * FROM Win32_CDROMDrive WHERE Drive='{0}:'", driveLetter));
ManagementObject diskResult = diskQuery.Get().OfType<ManagementObject>().SingleOrDefault();
string deviceID = null;
if (diskResult != null)
deviceID = (string)diskResult["DeviceID"];
Un metodo consiste nel navigare nella directory del computer, quella con c:/drive e dischi rigidi rimovibili. Con un disco rigido fisico se fai clic con il pulsante destro del mouse ed espelli il supporto, il vassoio del cd/dvd si aprirà; tuttavia, le unità virtuali cancelleranno semplicemente i dati memorizzati sull'unità, ma non faranno scorrere il vassoio sul laptop/computer.
Cerca in "DriveInfo" ... Guarda la proprietà DriveType di esso.
System.IO.DriveInfo di = nuovo System.IO.DriveInfo ("X: \");
- 1. Come identificare se una libreria è DEBUG o RELEASE build?
- 2. Come identificare se un processo è java o c o C++ process in linux?
- 3. Scopri se una proprietà è dichiarata virtuale
- 4. Come identificare se Swift è stato compilato con Ottimizzazione
- 5. Come identificare se il token OAuth è scaduto?
- 6. Come identificare se il riferimento di classe è un'interfaccia?
- 7. Come identificare se una grammatica è LL (1), LR (0) o SLR (1)?
- 8. Come identificare se un file Excel è conforme alle specifiche di Excel 95 o Excel 97?
- 9. Azure e Publish su buildserver. È necessario specificare la directory fisica per il percorso virtuale
- 10. È possibile avere sia la tastiera fisica che la tastiera virtuale attive contemporaneamente?
- 11. In che modo la memoria virtuale del kernel è mappata alla memoria fisica
- 12. Come verificare se una proprietà è virtuale con riflessione?
- 13. Metodo astratto o virtuale?
- 14. Android: come posso sapere se la tastiera virtuale è visualizzata o no?
- 15. In C#, come si controlla se un percorso è virtuale o no?
- 16. Algoritmo per identificare se l'albero è sottostruttura dell'altro albero
- 17. Come sapere se un puntatore si trova nella memoria fisica o provocherà un errore di pagina?
- 18. Identificare se un'istanza MethodInfo è una proprietà accessor
- 19. : indirizzo fisico o virtuale
- 20. Test se la tastiera virtuale è visibile utilizzando l'espresso
- 21. Fisica dell'informatica
- 22. Una funzione membro virtuale viene utilizzata se non è pura?
- 23. Come identificare se un oggetto deve essere in pila o no?
- 24. Come identificare se ho premuto il pulsante Indietro in IE?
- 25. Il metodo C# è sigillato o virtuale per impostazione predefinita?
- 26. Identificare se esiste un'app, se non andare a Play Store
- 27. In C++, una funzione è automaticamente virtuale se sovrascrive una funzione virtuale?
- 28. Come identificare se due diverse versioni di gcc sono compatibili?
- 29. Come identificare HTML5
- 30. come identificare o ricodificare un modello nei dati con SQL
@ L.B Gli stati OP, unità DVD/CD è virtuale contro fisico; cioè ... è montato tramite qualcosa come MagicISO o è un componente fisico del dispositivo. –