Windows8.1 und Windows10 - Neuerungen für Programmierer?

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Unsere Datenschutzerklärung wurde aktualisiert. Mit der Nutzung unseres Forums akzeptierst Du unsere Datenschutzerklärung. Du bestätigst zudem, dass Du mindestens 16 Jahre alt bist.

    • Windows8.1 und Windows10 - Neuerungen für Programmierer?

      Ich hatte neulich gerade den "Schock meines Lebens". Ich habe neulich mal einige Anwendungen von mir unter Windows10 getestet und festgestellt, dass einiges nicht mehr so funktionierte, wie es sein sollte. Mit Schrecken habe ich dann festgestellt, dass einiges davon bereits beim Update von Windiows8 auf Windows8.1 bereits den "Geist aufgegeben hatte".
      Ich bin eigentlich davon ausgegangen, dass sich von Windows8 auf Windows8.1 da nicht so massiv was geändert hat - aber Pustekuchen. Ich habe dann für etwa 10 meiner Programme Updates geschrieben - was da genau gewesen ist und was geändert wurde, erläutere ich später noch. Das dürfte für den ein oder anderen interessant sein.

      Wie ist es euch da schon mal ergangen? Auf welche Probleme seit ihr bei Windows Updates gestoßen? Hattet ihr jemals welche? Wenn ja, welche und an welchen Änderungen haben die gelegen? Wie habt ihr sie gelöst? Interessiert es euch überhaupt, ob euere Programme unter Windows8.1 und Windows10 noch korrekt laufen? Das muss ja nicht unbedingt so sein.
      Am meisten interessiert mich Windows8.1 und Windows10 - aber auch gerne Sachen zu anderen Betrienssystemen von Windows.
    • Zu meinem Problem:

      Viele meiner Programme nutzen eine spezielle Technik, um sich selbst mit den Rechten des lokalen Systemaccounts System auszustatten, ohne selbst ein Dienst zu sein. Beim Testen unter Windows10 ist mir dann aufgefallen, dass die Sache unter Windows10 nicht mehr funktionierte und sich die Änderung im System, die das bewirkt hatte, bereits unter Windows8.1 abgespielt hatte. Ich gleichen Zug könnte ich auch von vielen Systemprozessen keine Daten des Access Tokens mehr lesen.
      Als eigentliche Ursache dafür hat sich eine Änderung im Betriebssystem herausgestellt, die bereits unter Vista eingeführt wurde, die sich aber erst unter Windows8.1 wirklich manifestiert hat, unter Windows10 erweitert wurde und sich weiter erweitern wird: Die Protected Processes (geschützen Prozesse).
      Diese Prozessgruppe bietet nur ein mini males an erlaubten Zugriffsrechten - auch ein Aktivieren von SeDebugPrivilege nützt hier nichts.
      Hier listen der Protected Processes unter erinigen Betriebssystemen:
      Vista:

      Quellcode

      1. **************
      2. *Prozessliste*
      3. **************
      4. PID Prozessname Session User Parent-PID Protected Process Prozess hat Session gewechselt Dateiname Dateibeschreibung Firmenname
      5. ====== ============================================== ========= ===================== ============ =================== ================================ ========================================================================================== ============================================ ===========================================
      6. 4 System 0 0 ja nein
      7. 1288 audiodg.exe 0 LOKALER DIENST 1096 ja nein C:\Windows\System32\audiodg.exe Windows Graphisolierung für Audiogeräte Microsoft Corporation


      Windows8.1

      Quellcode

      1. **************
      2. *Prozessliste*
      3. **************
      4. PID Prozessname Session User Parent-PID Protected Process Prozess hat Session gewechselt WOW64 Prozess Dateiname Dateibeschreibung Firmenname
      5. ====== ======================== ========= ================ ============ =================== ================================ =============== ============================================================================================================================= ======================================================================== ===========================================
      6. 4 System 0 0 ja nein nein
      7. 320 smss.exe 0 SYSTEM 4 ja nein nein C:\Windows\System32\smss.exe Windows-Sitzungs-Manager Microsoft Corporation
      8. 480 csrss.exe 0 SYSTEM 472 ja nein nein C:\Windows\System32\csrss.exe Client-Server-Laufzeitprozess Microsoft Corporation
      9. 544 csrss.exe 1 SYSTEM 528 ja nein nein C:\Windows\System32\csrss.exe Client-Server-Laufzeitprozess Microsoft Corporation
      10. 584 services.exe 0 SYSTEM 536 ja nein nein C:\Windows\System32\services.exe Anwendung für Dienste und Controller Microsoft Corporation
      11. 3008 svchost.exe 0 SYSTEM 584 ja nein nein C:\Windows\System32\svchost.exe Hostprozess für Windows-Dienste Microsoft Corporation
      12. 2476 audiodg.exe 0 Lokaler Dienst 852 ja nein nein C:\Windows\System32\audiodg.exe Windows Graphisolierung für Audiogeräte Microsoft Corporation
      Alles anzeigen


      Windows10

      Quellcode

      1. **************
      2. *Prozessliste*
      3. **************
      4. PID Prozessname Session User Parent-PID Protected Process Prozess hat Session gewechselt Dateiname Dateibeschreibung Firmenname
      5. ====== ======================== ========= ================= ============ =================== ================================ ======================================================================================================================= ===================================================================== ===========================================
      6. 4 System 0 0 ja nein
      7. 308 smss.exe 0 SYSTEM 4 ja nein C:\Windows\System32\smss.exe Windows Session Manager Microsoft Corporation
      8. 448 csrss.exe 0 SYSTEM 388 ja nein C:\Windows\System32\csrss.exe Client Server Runtime Process Microsoft Corporation
      9. 536 wininit.exe 0 SYSTEM 388 ja nein C:\Windows\System32\wininit.exe Windows Start-Up Application Microsoft Corporation
      10. 592 services.exe 0 SYSTEM 536 ja nein C:\Windows\System32\services.exe Services and Controller app Microsoft Corporation
      11. 1852 MsMpEng.exe 0 SYSTEM 592 ja nein C:\Program Files\Windows Defender\MsMpEng.exe Antimalware Service Executable Microsoft Corporation
      12. 3848 NisSrv.exe 0 LOCAL SERVICE 592 ja nein C:\Program Files\Windows Defender\NisSrv.exe Microsoft Network Realtime Inspection Service Microsoft Corporation
      13. 3128 svchost.exe 0 SYSTEM 592 ja nein C:\Windows\System32\svchost.exe Host Process for Windows Services Microsoft Corporation
      14. 2584 audiodg.exe 0 LOCAL SERVICE 992 ja nein C:\Windows\System32\audiodg.exe Windows Audio Device Graph Isolation Microsoft Corporation
      15. 516 csrss.exe 1 SYSTEM 508 ja nein C:\Windows\System32\csrss.exe Client Server Runtime Process Microsoft Corporation
      Alles anzeigen


      Mein Fehler war hier, den Access Token ab Vista weiterhin mit dem Recht PROCESS_QUERY_INFORMATION, das von Protected Processes abgelehnt wird. Habe dann PROCESS_QUERY_LIMITED_INFORMATION verwendet, dann erhält man Zugriff auf den Access Token. Das Verhalten ist bislang undokumentiert!
    • Unter Win 8.1 laufen bei mir meine Programme.
      Allerdings sind meine Kenntnisse auch nicht so reichlich, um
      Prozess-Scanner o.dgl. zu programmieren. Kurzum, normale
      Sachen gehen.

      Da wirst du hier im Forum kaum das Glück haben, daß sich
      einige melden. Der Großteil von uns ist ja nur Haus- und Hof-
      Programmierer, also diejenigen, die normale Anwendungen
      schreiben.
    • Ich werde das noch zusätzlich in den allgemeinen Programmierbereich schieben.
      Alle Taskmanagerähnlichen Anwendungen sollte man auf jeden Fall auf Funktionsfähigkeit überprüfen. Da dürfte einiges nicht mehr vernünftig laufen.
      Ich könnte mir auch vorstellen, dass gerade im XPriofan Bereich einige auch noch interessieren würde, was von XP nach Vista / Windows7 so passiert ist. Bei dir läuft ja auch was nicht mehr vernünftig, was vorher ging.
    • Unter Windows10 wurde einiges von der Systemsteuerung in die Einstellungen ausgelagert. Einige Policies in der Registry ("Gruppenrichtlinien") scheinen nicht mehr wie von anderen Windowsversionen gewohnt zu funktionieren (mal DisableWindowsUpdateAccess testen). Bei Policies, die sich vorher auf die Systemsteuerung ausgewirkt haben und die jetzt in die App Einstellungen gewandert sind, sollte überprüft werden, ob der Registryeintrag noch die gewünschte Funktion hat.
    • Viele Funktionen/Einstellungen, die Domänenübergreifend sind/sein können, sind in den Gruppenrichtlinien anzutreffen. Da die normale Win10 Version keine Domäne mehr unterstützt, hat man wohl einige der Einstellungen gestrichen bzw. verlagert. Soweit ich weiß, ist nur noch die Enterprise-Edition und eingeschränkt auch die Pro-Version noch Domänentauglich (AktivDirectory usw.).
      Man muß jetzt also bei einigen Einstellungen aufpassen, je nach Win10 Version. Dies sollte aber auf normale Anwendungen keinerlei Einfluß haben.
      Gruß Thomas

      "Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen – Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen."
      ComputerInfo für PPF
    • ts-soft schrieb:

      Man muß jetzt also bei einigen Einstellungen aufpassen, je nach Win10 Version. Dies sollte aber auf normale Anwendungen keinerlei Einfluß haben.

      Es kommt immer drauf an, was man programmiert.
      Die Sache ist mir eigentlich nur aufgefallen, weil ich ein Tool von jemand anderem getestet habe. Habe die Home Version - das passt so ziemlioch auf das, was du da berichtest..

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von AxT ()

    • Soweit wie ich informiert bin (nicht sehr viel, da ich momentan mehr mit Linux mache ;-) ), sollte man seine Einstellungen nicht in der Registry festmachen, sondern entsprechend die neuen Funktionen aufrufen. Diese werden dann, wenn erforderlich, autom. in die Registry übertragen oder eben nicht. Bloß umgekehrt, also Registry-Einstellungen treffen und dann hoffen, das wirkt auch, ist nicht so ratsam.
      Gruß Thomas

      "Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen – Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen."
      ComputerInfo für PPF
    • Ab Windows8 funktioniert die API GetTickCount (XProfan &Gettickcount) anders als in den anderen Windowsversionen.
      Der Regelfall ist, dass der "Timer" nicht mehr unter Windows8 und Windows10 ab Rechnerstart zählt - er wird also beim Herunterfahren nicht auf 0 zurückgesetzt. Grund dafür ist die spezielle Bootart der zwei Windowsversionen - wobei im Prinzip einfach ein Speicherimage auf die Platte geschrieben und wieder eingelesen wird. Dieses ist, bis auf wenige Ausnahmen, beim Booten der Regelfall!

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von AxT ()

    • Wer unter 64Bit bei Windows10 die Struktur RTL_USER_PROCESS_PARAMETERS verwendet, kann unter Umständen ziemlich herbe Überraschungen erleben. Scheinbar wird der Member RTL_USER_PROCESS_PARAMETERS\DesktopName\Length nicht korrekt gefüllt.
      Dimensioniert man den Unicodestring über RTL_USER_PROCESS_PARAMETERS\DesktopName\MaximumLength und liest später so viele Daten aus, wie RTL_USER_PROCESS_PARAMETERS\DesktopName\Length angibt, kackt die Sache wegen Speicherüberlauf ab.
      Das betrifft nur 64Bit Programme - bei 32Bit klappt alles. Scheint ein Bug in Windows10 zu sein (Version 6.3.10586).
    • Ab Windows8.1 gibt es Neuerungen im Ermitteln der Windowsversion - siehe hier: Windowsversion korrekt ermitteln
      Sowohl die API GetVersion als auch die API GetVersionEx benötigen ab Windows8.1 ein spezielles Manifest für die EXE, um korrekt zu funktionieren - siehe hier: msdn.microsoft.com/de-de/libra…op/ms724833(v=vs.85).aspx
      Sie geben ansonsten immer die Windowsversion 8.0 zurück, nicht 8.1 oder 10.

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von AxT ()

    • Mit dem Aniversary Update im Jahr 2016 für Windows10 hat es Änderungen darin gegeben, wie die 32Bit NTDLL.DLL vom System gehandeld wird. Macht ein 32Bit Programm unter 64Bit mit der 32Bit DLL spezielle Sachen, könnte es Probleme geben.

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von AxT ()

    • Außerdem hat es unter Windows10 Änderungen in der Art und Weise gegeben, wie der RunOnceEx Schlüssel abgearbeitet wird. Führer ging es erst mit der Erstellung des Desktops weiter, wenn der Schlüssel komplett abgearbeitet wurde und alle Programme, die dort gestartet wurden, wieder beendet worden sind. Unter Windows10 setzt der Startvorgang beim Abarbeiten des Schlüssel fort.
    • In der aktuellen Preview von Windows10 hat sich der Index der Icons in der explorer.exe geändert. Wer spezielle Icons aus der EXE nutzt, wird sie eventuell nicht mehr dort vorfinden, wo sie in vorangegangenen Windowsversionen waren. Es könnte dann bei Nutzung von Icons aus der explorer.exe dazu kommen, dass die eigene Anwendung falsche Icons verwendet.

      Icons in Vista:
      [Blockierte Grafik: https://i.imagebanana.com/img/x03w1jcs/1.jpg]

      Icons in Windows10 Insider Preview Build 15031:
      [Blockierte Grafik: https://i.imagebanana.com/img/ee9nejg4/1.png]

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von AxT ()