2012-06-17 3 views
5

Quando si esegue un disco di installazione standard di Windows 7 in modalità di ripristino, se si apre la riga di comando e si esegue un'applicazione personalizzata, si riceverà l'errore "sottosistema non supportato". Ho provato a collegarmi con/SUBSYSTEM: CONSOLE, WINDOWS e NATIVE, nessuno di questi lavori.Quale sottosistema di Windows è supportato su un disco di ripristino

Ho avuto un po 'di difficoltà con una tabella delle partizioni (e potrebbe aver trovato un bug, o almeno un comportamento "stupido" dal gestore delle partizioni incluso in Windows) e così ho scritto un'utilità per risolverlo. Il mio programma usa 'Windows.h' per importare CreateFile, tuttavia se necessario posso usare solo C++ standard (o anche C standard) senza intestazioni specifiche di Windows.

Cosa devo fare per far funzionare un'applicazione?

+1

Cosa compilatore stai usando? È riproducibile con un semplice programma "Hello World" o si verifica il problema quando si inizia a utilizzare CreateFile? Qual è l'output di 'objdump -p' sul tuo programma w.r.t. "Sottosistema"? http://old.nabble.com/Finding-an-executable's-Windows-subsystem-td22897545.html – HostileFork

+0

Uso di Visual Studio 2010, C++ (Uso del runtime statico), quando avrò la possibilità in un'ora proverò a utilizzare un vuoto progetto e poi con solo un printf. – James

risposta

5

Windows Recovery Environment è un superset dell'ambiente di preinstallazione di Windows.

Windows PE è una versione ridotta di Windows, priva di molti sottosistemi tra cui WoW (Windows su Windows).

Ciò significa che gli eseguibili a 32 bit (o qualsiasi cosa con un componente a 32 bit) NON FUNZIONERANNO su un disco PE PE a 64 bit. (Si noti che WinPE 32 non può installare/riparare sistemi a 64 bit e viceversa).

La soluzione al mio problema era compilare codice a 64 bit: un messaggio di errore descrittivo sarebbe stato piacevole Microsoft: |

trovato dopo molte ricerche: http://technet.microsoft.com/en-us/library/cc766093(v=ws.10).aspx

+0

Segnalo come risposta in 2 giorni (quando me lo consente) – James

0

Stai utilizzando il C++ CRT in qualche modo? Non penso che sia supportato. Dubito persino che sia CreateFile appropriato; e guarda invece su NtCreateFile.

+0

Bene, ci deve essere un runtime ... C'è una vasta gamma di strumenti che girano sulla console di ripristino, qualcuno sa di una pagina in cui posso trovare i requisiti? Non sono riuscito a trovare nulla tramite google, ma potrebbe aver digitato la cosa sbagliata. – James

+1

Stai pensando al runtime nativo (http://technet.microsoft.com/en-us/sysinternals/bb897447.aspx). Fortunatamente la modalità di ripristino e Windows PE vengono eseguiti in Win32, solo con alcuni componenti rimossi. – BCran

Problemi correlati