modul de compatibilitate

Unele programe în versiunile mai noi de Windows nu funcționează corect sau nu funcționează deloc. Acest lucru se întâmplă pentru că o versiune mai nouă a funcției API este diferită de cea veche.

Pentru a rezolva această problemă în Windows există un mod de compatibilitate, care poate fi selectat pentru fiecare program. Prin selectarea unei versiuni specifice a sistemului și setările specifice, puteți rula un program, în cazul în care acesta nu este pornit în mod implicit.

Studiul și punerea în aplicare a unui sistem de control al versiunii pentru ReactOS

Punerea în aplicare a modului de compatibilitate

NtApphelpCacheControl

Funcția nucleu NtApphelpCacheControl folosit AppHelp, pentru a păstra o listă (200) aplicații lansate recent în memoria RAM pentru o căutare mai rapidă. Când ieșiți din lista de aplicații stocate în registru, și porniți înapoi încărcate.

Punerea în aplicare apphelp SDB

Punerea în aplicare a majorității SDB * API-interfețele asociate cu fișiere de scriere și citire SDB.

fișiere SDB - baza de date cu compatibilitatea aplicațiilor care conține informații despre „cunoscute aplicații rele“, precum și o listă de „straturi“ care urmează să fie aplicate acestor aplicații.

  • CORE-10367
  • în prezent lucrează la această componentă

modul de compatibilitate

Tab în proprietățile de comenzi rapide

Tab în Explorer

În versiunile mai noi de Windows, este implementat ca o extensie shell (acppage.dll). Acesta utilizează funcții SetPermLayerState, SdbGetPermLayerKeys.

În momentul de față, tab-ul este realizat împreună cu funcționalitatea permite să aplice necesare „straturi“, dar cu handicap.

apphelp Integrare

apphelp Integrarea în devenire. COM, MSI, și drivere.

infrastructura shim

Acesta pune în aplicare infrastructura de bază pentru a emula diferite API.

Crearea de valori standard de Shim

  • Lista „emulat“ versiuni ale API-ului. (CORE-11299)
  • reglarea adâncimii rezoluția ecranului / color / dezactivarea (CORE-11927)

Execută funcții de utilitate pentru straturile de ajustare și de înregistrare pentru tratamentul sarcinilor comune.

Shim date în etichete

mediu de compatibilitate Aplicația nu este pentru * .exe-fișier și o comandă rapidă pentru.

starea de implementare

Gestionarea registrului

  • DWORD: DisableEngine
  • DWORD: DisablePropPage
  • DWORD: DisableWizard
  • DWORD: LogAppHelpEvents
  • DWORD: VDMDisallowed

Bază de date Compatibilitate

Rularea aplicațiilor prin modul de compatibilitate: