5

Abgesehen von der MSDN reference möchte ich wissen, was diese Tasten tun? Ist KEY_WOW64_32KEY bedeutet, dass eine 32-Bit-App auf x64-Betriebssystem auf die WOW64-Registrierungsstruktur zugreifen wird? Und bedeutet KEY_WOW64_64KEY bedeutet, dass eine 32-Bit-App auf x64-Betriebssystem auf die normale Registrierungsstruktur und nicht die WOW64-Registrierungsstruktur zugreifen wird? Was passiert, wenn ich auf einige Schlüssel zugreifen muss, von denen ich nicht weiß, ob sie im WOW64 oder im normalen Verzeichnisbaum liegen?KEY_WOW64_32KEY und KEY_WOW64_64KEY

Antwort

20
  • KEY_WOW64_64KEY auf einem OS 64-Bit bedeutet, dass der Zugriff auf die Registry, egal ob es, die 64-Bit-Register Ansicht wird Zugriff auf eine 32- oder 64-Bit-Prozess ist.

  • KEY_WOW64_32KEY auf einem 64-Bit-Betriebssystem bedeutet, dass die Zugriffsregister, wenn es egal, wird Zugriff auf die 32-Bit-Register Ansicht ein 32- oder 64-Bit-Prozess ist.

  • Keine von beiden hat Auswirkungen auf ein 32-Bit-Betriebssystem.

  • Das Verlassen des Flags (der Standardwert) auf einem 64-Bit-Betriebssystem sendet Registrierungszugriffe von 32-Bit-Prozessen auf die 32-Bit-Registrierungsansicht und greift von 64-Bit-Prozessen auf die 64-Bit-Registrierungsansicht zu.

Für weitere Informationen, this reference page at Microsoft sollte die ganze Geschichte erzählen.

+0

Gemäß der von Ihnen angegebenen Referenz kann RegDeleteKey nicht für den Zugriff auf die alternative Registrierungsstruktur verwendet werden. Was passiert, wenn platform = x64, app = x86, RegOpenKeyEx mit samDesired wie KEY_WOW64_64KEY und ich das Handle des geöffneten 64Key an RegDeleteKey übergebe, würde es dann den angegebenen Schlüssel löschen? –

+1

@ user1696837 Ja, wenn Sie einen bereits geöffneten HKEY für die 64-Bit-Registrierung haben, wird RegDeleteKey funktionieren (für jetzt). Wenn das in Zukunft garantiert der Fall ist, weiß ich nicht, der empfohlene Weg wäre definitiv RegDeleteKeyEx mit dem Flag 'KEY_WOW64_64KEY'. –

2

aus dem verknüpften Referenz:

Weitere Informationen Accessing an Alternate Registry View. siehe

die sagt:

  • KEY_WOW64_64KEY: entweder von einem 64-Bit-Schlüssel Zugriff auf 32- Bit oder 64-Bit-Anwendung.

  • KEY_WOW64_32KEY: Greifen Sie aus einer 32-Bit- oder einer 64-Bit-Anwendung auf einen 32-Bit-Schlüssel zu.

+0

Entsprechend der von Ihnen angegebenen Referenz kann RegDeleteKey nicht für den Zugriff auf die alternative Registrierungsstruktur verwendet werden. Was ist, wenn platform = x64, app = x86, RegOpenKeyEx mit samDesired wie KEY_WOW64_64KEY und ich das Handle des geöffneten 64Key an RegDeleteKey übergebe, würde es dann den angegebenen Schlüssel löschen? –