From 8bb7ed968db64e9b12a6447e2eec3586ef9e935c Mon Sep 17 00:00:00 2001 From: Dirk Date: Tue, 10 Jun 2014 14:19:40 +0200 Subject: Windows system name changer during bootup. --- windows/bootpgm/win32/win32.cpp | 92 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 windows/bootpgm/win32/win32.cpp (limited to 'windows/bootpgm/win32/win32.cpp') diff --git a/windows/bootpgm/win32/win32.cpp b/windows/bootpgm/win32/win32.cpp new file mode 100644 index 00000000..cc3999fe --- /dev/null +++ b/windows/bootpgm/win32/win32.cpp @@ -0,0 +1,92 @@ +/* The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" + * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the + * License for the specific language governing rights and limitations + * under the License. + * + * The Initial Developer of the Original Code is Johannes Rudolph. + * Portions created by the Initial Developer are Copyright (C) 2006 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Johannes Rudolph + */ + +#include "stdafx.h" +#include "io.h" +#include "main.h" +#include "registrybrowser.h" + +class UsermodeIO:public IO{ +public: + char getChar() + { + return getchar(); + } + void internalPrint(char *buffer) + { + printf(buffer); + } + char *getVersion() + { + return "Usermode IO"; + } + void *malloc(unsigned int length) + { + return ::malloc(length); + } + void free(void *buffer) + { + ::free(buffer); + } + void handleCharEcho(char ch,char *buffer,unsigned int length) + { + // no echo necessary because getchar() echos + } +}; + +void splitArgs(IO &io,char *args){ + if (strlen(args)==0) + return; + + int argc; + UNICODE_STRING str; + wchar_t *wstr; + char buffer[100]; + wstr=(wchar_t*)buffer; + mbstowcs(wstr,args,50); + NT::RtlInitUnicodeString(&str,wstr); + str.Length-=2; + char **argv=split_args(io,str.Buffer,str.Length/2,&argc); + for (int i=0;i