Fixed Rtl* string functions for proper MBCS/codepage support. Added a
few more functions.

diff --git a/include/ntddk.h b/include/ntddk.h
index f73b1ef..be4d954 100644
--- a/include/ntddk.h
+++ b/include/ntddk.h
@@ -585,91 +585,52 @@
 
 /*	string functions */
 
-VOID WINAPI RtlInitAnsiString(
-	PANSI_STRING target,
-	LPCSTR source);
-	
-VOID WINAPI RtlInitString(
-	PSTRING target,
-	LPCSTR source);
-	
-VOID WINAPI RtlInitUnicodeString(
-	PUNICODE_STRING target,
-	LPCWSTR source);
-	
-VOID WINAPI RtlFreeUnicodeString(
-	PUNICODE_STRING str);
-	
-VOID WINAPI RtlFreeAnsiString(
-	PANSI_STRING AnsiString);
-
-NTSTATUS WINAPI RtlAnsiStringToUnicodeString(
-	PUNICODE_STRING uni,
-	PANSI_STRING ansi,
-	BOOLEAN doalloc);
-
-NTSTATUS WINAPI RtlOemStringToUnicodeString(
-	PUNICODE_STRING uni,
-	PSTRING ansi,
-	BOOLEAN doalloc);
-	
-NTSTATUS WINAPI RtlMultiByteToUnicodeN(
-	LPWSTR unistr,
-	DWORD unilen,
-	LPDWORD reslen,
-	LPSTR oemstr,
-	DWORD oemlen);
-	
-NTSTATUS WINAPI RtlOemToUnicodeN(
-	LPWSTR unistr,
-	DWORD unilen,
-	LPDWORD reslen,
-	LPSTR oemstr,
-	DWORD oemlen);
-	
-NTSTATUS WINAPI RtlUnicodeToOemN(
-	LPSTR oemstr,
-	DWORD oemlen,
-	LPDWORD reslen,
-	LPWSTR unistr,
-	DWORD unilen);
-
-NTSTATUS WINAPI RtlUnicodeStringToOemString(
-	PANSI_STRING oem,
-	PUNICODE_STRING uni,
-	BOOLEAN alloc);
-
-NTSTATUS WINAPI RtlUnicodeStringToAnsiString(
-	PANSI_STRING oem,
-	PUNICODE_STRING uni,
-	BOOLEAN alloc);
-
-BOOLEAN WINAPI RtlEqualUnicodeString(
-	PUNICODE_STRING s1,
-	PUNICODE_STRING s2,
-	BOOLEAN x);
-
-DWORD WINAPI RtlUpcaseUnicodeString(
-	PUNICODE_STRING dest,
-	PUNICODE_STRING src,
-	BOOLEAN doalloc);
-
-UINT WINAPI RtlxOemStringToUnicodeSize(
-	PSTRING str);
-
-UINT WINAPI RtlxAnsiStringToUnicodeSize(
-	PANSI_STRING str);
+DWORD       WINAPI RtlAnsiStringToUnicodeSize(PSTRING);
+NTSTATUS    WINAPI RtlAnsiStringToUnicodeString(UNICODE_STRING*,const STRING *,BOOLEAN);
+NTSTATUS    WINAPI RtlAppendAsciizToString(STRING*,LPCSTR);
+NTSTATUS    WINAPI RtlAppendStringToString(STRING*,const STRING*);
+NTSTATUS    WINAPI RtlAppendUnicodeStringToString(UNICODE_STRING*,const UNICODE_STRING*);
+NTSTATUS    WINAPI RtlAppendUnicodeToString(UNICODE_STRING*,LPCWSTR);
+LONG        WINAPI RtlCompareString(const STRING*,const STRING*,BOOLEAN);
+LONG        WINAPI RtlCompareUnicodeString(const UNICODE_STRING*,const UNICODE_STRING*,BOOLEAN);
+void        WINAPI RtlCopyString(STRING*,const STRING*);
+void        WINAPI RtlCopyUnicodeString(UNICODE_STRING*,const UNICODE_STRING*);
+BOOLEAN     WINAPI RtlCreateUnicodeString(PUNICODE_STRING,LPCWSTR);
+BOOLEAN     WINAPI RtlCreateUnicodeStringFromAsciiz(PUNICODE_STRING,LPCSTR);
+void        WINAPI RtlEraseUnicodeString(UNICODE_STRING*);
+BOOLEAN     WINAPI RtlEqualString(const STRING*,const STRING*,BOOLEAN);
+BOOLEAN     WINAPI RtlEqualUnicodeString(const UNICODE_STRING*,const UNICODE_STRING*,BOOLEAN);
+void        WINAPI RtlFreeAnsiString(PSTRING);
+void        WINAPI RtlFreeOemString(PSTRING);
+void        WINAPI RtlFreeUnicodeString(PUNICODE_STRING);
+void        WINAPI RtlInitAnsiString(PSTRING,LPCSTR);
+void        WINAPI RtlInitString(PSTRING,LPCSTR);
+void        WINAPI RtlInitUnicodeString(PUNICODE_STRING,LPCWSTR);
+NTSTATUS    WINAPI RtlMultiByteToUnicodeN(LPWSTR,DWORD,LPDWORD,LPCSTR,DWORD);
+NTSTATUS    WINAPI RtlMultiByteToUnicodeSize(DWORD*,LPCSTR,UINT);
+UINT        WINAPI RtlOemStringToUnicodeSize(PSTRING);
+NTSTATUS    WINAPI RtlOemStringToUnicodeString(UNICODE_STRING*,const STRING*,BOOLEAN);
+NTSTATUS    WINAPI RtlOemToUnicodeN(LPWSTR,DWORD,LPDWORD,LPCSTR,DWORD);
+BOOLEAN     WINAPI RtlPrefixString(const STRING*,const STRING*,BOOLEAN);
+BOOLEAN     WINAPI RtlPrefixUnicodeString(const UNICODE_STRING*,const UNICODE_STRING*,BOOLEAN);
+DWORD       WINAPI RtlUnicodeStringToAnsiSize(const UNICODE_STRING*);
+NTSTATUS    WINAPI RtlUnicodeStringToAnsiString(STRING*,const UNICODE_STRING*,BOOLEAN);
+DWORD       WINAPI RtlUnicodeStringToOemSize(const UNICODE_STRING*);
+NTSTATUS    WINAPI RtlUnicodeStringToOemString(STRING*,const UNICODE_STRING*,BOOLEAN);
+NTSTATUS    WINAPI RtlUnicodeToMultiByteN(LPSTR,DWORD,LPDWORD,LPCWSTR,DWORD);
+NTSTATUS    WINAPI RtlUnicodeToMultiByteSize(DWORD*,LPCWSTR,UINT);
+NTSTATUS    WINAPI RtlUnicodeToOemN(LPSTR,DWORD,LPDWORD,LPCWSTR,DWORD);
+NTSTATUS    WINAPI RtlUpcaseUnicodeString(UNICODE_STRING*,const UNICODE_STRING *,BOOLEAN);
+NTSTATUS    WINAPI RtlUpcaseUnicodeStringToAnsiString(STRING*,const UNICODE_STRING*,BOOLEAN);
+NTSTATUS    WINAPI RtlUpcaseUnicodeStringToOemString(STRING*,const UNICODE_STRING*,BOOLEAN);
+NTSTATUS    WINAPI RtlUpcaseUnicodeToMultiByteN(LPSTR,DWORD,LPDWORD,LPCWSTR,DWORD);
+NTSTATUS    WINAPI RtlUpcaseUnicodeToOemN(LPSTR,DWORD,LPDWORD,LPCWSTR,DWORD);
 
 DWORD WINAPI RtlIsTextUnicode(
 	LPVOID buf,
 	DWORD len,
 	DWORD *pf);
 
-NTSTATUS WINAPI RtlCompareUnicodeString(
-	PUNICODE_STRING String1,
-	PUNICODE_STRING String2,
-	BOOLEAN CaseInSensitive);
-
 /*	resource functions */
 
 typedef struct _RTL_RWLOCK {