Problemi con l'analisi delle informazioni MCCS di Windows 7

Questo articolo consente di risolvere il problema che si verifica durante l'analisi delle informazioni MCCS in Windows 7.

Versione originale del prodotto: Windows 7 Enterprise, Windows 7 Home Premium, Windows 7 Professional, Windows 7 Ultimate
Numero KB originale: 2515532

Sintomi

I display conformi a MCCS forniscono una stringa di funzionalità MCCS da leggere e analizzare dal sistema per fornire informazioni su tale visualizzazione tramite GetMonitorCapabilities l'API. Il set di comandi di controllo VESA Monitor versione 2.2a Standard fornisce una stringa di esempio come indicato di seguito:

Console
Prot(display) type(lcd) model(xxxxx) cmds(xxxxx) vcp(02 03 10 12 C8 DC(00 01 02 03 07) DF) mccs_ver(2.2)
window1(type (PIP) area(25 25 1895 1175) max(640 480) min(10 10) window(10)) vcpme(10(Brightness))

Questa stringa non verrà analizzata correttamente con il parser corrente in Windows 7 e GetLastError restituirà un errore: STATUS_GRAPHICS_DDCCI_INVALID_CAPABILITIES_STRING

Il monitor ha restituito una stringa di funzionalità DDC/CI non conforme alla specifica ACCESS.bus 3.0, DDC/CI 1.1 o MCCS 2 Revisione 1.

Causa

Ciò è causato da alcune regole eccessivamente restrittive nel parser che non sono necessarie nella specifica.

Risoluzione

Per ovviare a queste restrizioni, il firmware di visualizzazione dovrà seguire alcuni criteri più restrittivi per essere analizzati correttamente dal sistema.

  • La stringa deve essere incapsulata tra parentesi

  • Ogni intestazione non deve essere preceduta da uno spazio dopo le parentesi finali dell'intestazione precedente

  • Windows 7 supporta solo MCCS versione 1.0, 2.0 e 2.1. Le versioni segnalate diverse da quelle non verranno analizzate correttamente e restituiranno un errore e GetLastError restituirà ERROR_GRAPHICS_MCA_UNSUPPORTED_MCCS_VERSION.

  • Il firmware di visualizzazione deve assicurarsi che la versione segnalata nella stringa di funzionalità corrisponda alle informazioni sulla versione restituite dal GetVCPFeatureAndVCPFeatureReply() sistema. In caso contrario, il sistema restituirà un errore e GetLastError restituirà ERROR_GRAPHICS_MCA_MCCS_VERSION_MISMATCH un errore.