Qualche giorno fa ho acquistato una nuova scheda grafica nVidia GF 6800 XT per poter supportare con tutta tranquillità Vista Ultimare Edition ed Aero. Monto la scheda e funziona tutto a meravoglia per qualche ora. Dopodichè bang! Un bel bluescreen!!

La prima cosa che mi è passata per la mente (lo ammetto) è dare la responsabilità al sistema operativo! Dopo un momento di concitazione (ed accidenti) ho sfruttato l'opzione di ripristino di Vista mandando la richiesta a Microsoft ("Richiedi una soluzione"). Dopo 30 minuti mi arriva la risposta: c'è un problema con il driver video!

Bene, vado sul sito nVidia e scarico l'ultimissima versione. Uso Vista normalmente e bang! Ancora una volta. A questo punto chiamo l'assistenza nVidia (fra l'altro stanno a 7 miglia da casa mia) e chiedo delucidazioni. Loro mi rispondono chiedendo dettagli di sistema (basta salvare l'analisi di msinfo32) che gli rimando prontamente.

La loro risposta è un rimando ad una pagina della knowledge base (https://nvidia.custhelp.com/cgi-bin/nvidia.cfg/php/enduser/std_adp.php?p_faqid=22&p_created=1096486168). Inoltre dicono che se non funziona di contattare chi ha fatto la scheda. Ovviamente contatto il produttore il quale prontamente mi rimanda a nVidia e comunque afferma "Since Vista is still in its early stages, there will be bugs and other errors with it. If it is Vista that is the issue, then I would recommend contacting microsoft". Se leggete anche le parole della knowledge base di nVidia sono più o meno sullo stesso tono.

Ok, che fare? Bene, mi carico il minidump generato da Vista in WinDBG (http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx) ed inizio l'analisi del problema. Purtroppo non ho i simboli del driver ma l'analisi mi pare molto chiara:

Use !analyze -v to get detailed debugging information.
BugCheck D1, {656d617e, 2, 0, 8c84e992}
Unable to load image \SystemRoot\system32\DRIVERS\nvlddmkm.sys, Win32 error 2
*** WARNING: Unable to verify timestamp for nvlddmkm.sys
*** ERROR: Module load completed but symbols could not be loaded for nvlddmkm.sys

 
DRIVER_IRQL_NOT_LESS_OR_EQUAL (d1)
An attempt was made to access a pageable (or completely invalid) address at an
interrupt request level (IRQL) that is too high.  This is usually
caused by drivers using improper addresses.
If kernel debugger is available get stack backtrace.
Arguments:
Arg1: 656d617e, memory referenced
Arg2: 00000002, IRQL
Arg3: 00000000, value 0 = read operation, 1 = write operation
Arg4: 8c84e992, address which referenced memory
Debugging Details:
------------------

READ_ADDRESS: GetPointerFromAddress: unable to read from 81d275a0
Unable to read MiSystemVaType memory at 81d08680
 656d617e
CURRENT_IRQL:  2
FAULTING_IP:
nvlddmkm+8e992
8c84e992 ??              ???
 
Di chi è il driver che sta in nvlddmkm.sys? Basta fare una query su Google per accorgersi che non sono l'unico: http://www.google.com/search?hl=en&q=nvlddmkm.sys+Vista+RTM
 
Riassumento: nVidia si propone sul mercato con schede Vista compatibili che si rivelano essere bacate come poche. Non solo, quando si chiede assistenza scaricano la colpa su Microsoft. Non so, ma a me pare che le cose potrebbero girare pure male per nVidia: http://www.tgdaily.com/2007/02/02/nvidia_lawsuit_vista_drivers/