Sto tentando di modificare un driver del disco del kernel a livello di Windows per rispondere correttamente ai codici di controllo aggiornati. Per esempio, aveva solo un gestore per il codice di controllo obsoleto IOCTL_DISK_GET_DRIVE_GEOMETRY
, ma non il codice di controllo IOCTL_DISK_GET_DRIVE_GEOMETRY_EX
più recente, così ho aggiunto che.
Ovviamente, ho aggiornato il driver per utilizzare tutte le nuove strutture e funzioni di Windows, come la funzione IoReadPartitionTableEx()
e la struttura DRIVE_LAYOUT_INFORMATION_EX
(sto cercando di aggiungere il supporto GPT al driver). Il problema è, quando uso il driver del disco, posso vedere (utilizzando DebugView) che Windows (credo che sia di Windows ... forse è un'altra cosa ...) è ancora inviando il codice di controllo IOCTL_DISK_GET_DRIVE_GEOMETRY
vecchio per il mio autista. Vorrei che Windows inviasse i nuovi codici di controllo al mio driver. È anche Windows che sta inviando questi codici di controllo? C'è forse qualche altro livello tra Windows e il driver di cui non sono ancora a conoscenza?Modifica del driver del disco di Windows per utilizzare i codici di controllo aggiornati come IOCTL_DISK_GET_DRIVE_GEOMETRY_EX
Il driver dovrebbe in qualche modo identificare il suo "tipo" su Windows, in modo che Windows sappia esattamente come "parlare" ad esso? In che modo Windows sa esattamente quali codici di controllo inviare a un determinato driver? Ho Googled intorno per le risposte a queste domande (apparentemente molto di base), e non ho trovato una risposta chiara, il che mi porta a credere che ho fondamentalmente qualcosa frainteso sui driver di Windows qui. La mia domanda ha senso?
Questa domanda sembra essere fuori tema perché si tratta di Non è, ma voglio esprimere un voto di riapertura. :) –
Non penso che "IOCTL_DISK_GET_DRIVE_GEOMETRY' sia effettivamente obsoleto. Windows potrebbe semplicemente usarlo perché non ha bisogno delle informazioni extra fornite dalla versione '_EX'. (Non sono sicuro che abbia senso che un driver del disco fisico restituisca le informazioni sulla partizione, dal momento che si tratta di un concetto di livello superiore di cui non dovrebbe essere necessario occuparsi, ma non conosco bene i driver del disco di Windows.) –
Quale tipo di disco viene restituito dal tuo driver? Vedere i commenti dell'utente in fondo a [questo] (https://msdn.microsoft.com/en-us/library/aa365171%28v=vs.85%29.aspx). – wallyk