2012-06-17 5 views
5

Wenn Sie eine Standard-Windows 7-Installationsdiskette im Wiederherstellungsmodus ausführen, erhalten Sie beim Öffnen der Befehlszeile und Ausführen einer benutzerdefinierten Anwendung den Fehler 'Subsystem nicht unterstützt'. Ich habe versucht, mit/SUBSYSTEM: CONSOLE, WINDOWS und NATIVE zu verknüpfen, nichts davon funktioniert.Welches Windows-Subsystem wird auf einer Wiederherstellungsdiskette unterstützt

Ich hatte ein wenig Schwierigkeiten mit einer Partitionstabelle (und möglicherweise einen Fehler gefunden, oder zumindest 'dumm' Verhalten von der Partition Manager in Windows enthalten) und so schrieb ein Dienstprogramm, um es zu beheben. Mein Programm verwendet 'Windows.h', um CreateFile zu importieren, jedoch kann ich bei Bedarf nur Standard C++ (oder sogar Standard C) ohne Windows-spezifische Header verwenden.

Was muss ich tun, um eine Anwendung zu starten?

+1

Welche Compiler verwenden Sie? Ist das mit einem einfachen "Hello World" -Programm reproduzierbar, oder erhalten Sie das Problem, wenn Sie CreateFile verwenden? Was ist die Ausgabe von 'objdump -p' auf Ihrem Programm w.r.t. "Teilsystem"? http://old.nabble.com/Finding-an-executable-Windows-subsystem-td22897545.html – HostileFork

+0

Mit Visual Studio 2010, C++ (mit statischen Laufzeit), wenn ich eine Chance in einer Stunde bekomme, werde ich versuchen, eine leere verwenden Projekt und dann mit nur einem printf. – James

Antwort

5

Die Windows-Wiederherstellungsumgebung ist eine Obermenge der Windows-Vorinstallationsumgebung.

Windows PE ist eine abgespeckte Version von Windows, ohne viele Subsysteme einschließlich WoW (Windows unter Windows).

Dies bedeutet, dass ausführbare 32-Bit-Dateien (oder alles mit einer 32-Bit-Komponente) nicht auf einer 64-Bit-Windows PE-Festplatte ausgeführt werden. (Beachten Sie, dass WinPE 32 64-Bit-Systeme nicht installieren/reparieren kann und umgekehrt).

Die Lösung für mein Problem war, zu 64-Bit-Code zu kompilieren - eine beschreibende Fehlermeldung wäre nett gewesen Microsoft: |

nach langem Suchen gefunden: http://technet.microsoft.com/en-us/library/cc766093(v=ws.10).aspx

+0

Ich werde dies als Antwort in 2 Tagen markieren (wenn es mich lässt) – James

0

Verwenden Sie den C++ CRT in irgendeiner Weise? Ich denke nicht, dass das unterstützt wird. Ich würde sogar bezweifeln, dass CreateFile angemessen ist; und schauen Sie stattdessen in NtCreateFile.

+0

Nun, da _must_ eine Laufzeit sein muss ... Es gibt eine Vielzahl von Tools, die auf der Wiederherstellungskonsole ausgeführt werden, kennt jemand eine Seite, auf der ich die Anforderungen finden kann? Ich konnte nichts über Google herausfinden, habe aber vielleicht das Falsche eingegeben. – James

+1

Sie denken an die native Laufzeit (http://technet.microsoft.com/en-us/sysinternals/bb897447.aspx). Glücklicherweise werden der Wiederherstellungsmodus und Windows PE in Win32 ausgeführt, nur einige Komponenten wurden entfernt. – BCran

Verwandte Themen