32 #define LOCALES_COUNT _countof(Locales) 35 L"Menu D\u00E9marrer",
36 L"S\u00E9lecteur de configuration clavier.lnk",
37 L"\u00E9\u00E8\u00E0\u00F9\u00E7.txt",
38 L"\u00E7\u00F9\u00E0\u00E8\u00E9.txt",
39 L"\u00E9\u00E8\u00E0\u00F9.txt",
40 L"\u00E7\u00F9\u00E0\u00E8.txt",
41 L"\u00E9\u00E8\u00E0\u00F9\u00E7eeauc.txt",
42 L"\u00E9e\u00E8\u00E9\u00E7c\u00F9u.txt",
43 L"test.\u00E9x\u00E8",
44 L"t\u00A3$t\u00A4.txt",
45 L"Long file name.txt",
49 L"\u30c7\u30b9\u30af\u30c8\u30c3\u30d7" 51 #define NAMES_COUNT _countof(Names) 55 {
L"MENUDM~1",
L"SLECTE~1.LNK",
L"5C2D~1.TXT",
L"423C~1.TXT",
L"925E~1.TXT",
L"7E4C~1.TXT",
L"EEAUC~1.TXT",
L"ECU~1.TXT",
L"TEST~1.X",
L"T$T~1.TXT",
L"LONGFI~1.TXT",
L"LONGFI~1",
L"LONGFI~1.TXT",
L"LONGFI~1",
L"9A16~1" },
56 {
L"MENUDM~1",
L"SLECTE~1.LNK",
L"5C2D~1.TXT",
L"423C~1.TXT",
L"925E~1.TXT",
L"7E4C~1.TXT",
L"EEAUC~1.TXT",
L"ECU~1.TXT",
L"TEST~1.X",
L"T$T~1.TXT",
L"LONGFI~1.TXT",
L"LONGFI~1",
L"LONGFI~1.TXT",
L"LONGFI~1",
L"9A16~1" },
57 {
L"MENUDM~1",
L"SLECTE~1.LNK",
L"5C2D~1.TXT",
L"423C~1.TXT",
L"925E~1.TXT",
L"7E4C~1.TXT",
L"EEAUC~1.TXT",
L"ECU~1.TXT",
L"TEST~1.X",
L"T$T~1.TXT",
L"LONGFI~1.TXT",
L"LONGFI~1",
L"LONGFI~1.TXT",
L"LONGFI~1",
L"9A16~1" },
58 {
L"MENUDM~1",
L"SLECTE~1.LNK",
L"5C2D~1.TXT",
L"423C~1.TXT",
L"925E~1.TXT",
L"7E4C~1.TXT",
L"EEAUC~1.TXT",
L"ECU~1.TXT",
L"TEST~1.X",
L"T$T~1.TXT",
L"LONGFI~1.TXT",
L"LONGFI~1",
L"LONGFI~1.TXT",
L"LONGFI~1",
L"9A16~1" },
59 {
L"MENUDM~1",
L"SLECTE~1.LNK",
L"5C2D~1.TXT",
L"423C~1.TXT",
L"925E~1.TXT",
L"7E4C~1.TXT",
L"EEAUC~1.TXT",
L"ECU~1.TXT",
L"TEST~1.X",
L"T$T~1.TXT",
L"LONGFI~1.TXT",
L"LONGFI~1",
L"LONGFI~1.TXT",
L"LONGFI~1",
L"9A16~1" },
60 {
L"MENUDM~1",
L"SLECTE~1.LNK",
L"5C2D~1.TXT",
L"423C~1.TXT",
L"925E~1.TXT",
L"7E4C~1.TXT",
L"EEAUC~1.TXT",
L"ECU~1.TXT",
L"TEST~1.X",
L"T$T~1.TXT",
L"LONGFI~1.TXT",
L"LONGFI~1",
L"LONGFI~1.TXT",
L"LONGFI~1",
L"9A16~1" },
64 {
L"MENUDM~2",
L"SLECTE~2.LNK",
L"5C2D~2.TXT",
L"423C~2.TXT",
L"925E~2.TXT",
L"7E4C~2.TXT",
L"EEAUC~2.TXT",
L"ECU~2.TXT",
L"TEST~2.X",
L"T$T~2.TXT",
L"LONGFI~2.TXT",
L"LONGFI~2",
L"LONGFI~2.TXT",
L"LONGFI~2",
L"9A16~2" },
65 {
L"MENUDM~2",
L"SLECTE~2.LNK",
L"5C2D~2.TXT",
L"423C~2.TXT",
L"925E~2.TXT",
L"7E4C~2.TXT",
L"EEAUC~2.TXT",
L"ECU~2.TXT",
L"TEST~2.X",
L"T$T~2.TXT",
L"LONGFI~2.TXT",
L"LONGFI~2",
L"LONGFI~2.TXT",
L"LONGFI~2",
L"9A16~2" },
66 {
L"MENUDM~2",
L"SLECTE~2.LNK",
L"5C2D~2.TXT",
L"423C~2.TXT",
L"925E~2.TXT",
L"7E4C~2.TXT",
L"EEAUC~2.TXT",
L"ECU~2.TXT",
L"TEST~2.X",
L"T$T~2.TXT",
L"LONGFI~2.TXT",
L"LONGFI~2",
L"LONGFI~2.TXT",
L"LONGFI~2",
L"9A16~2" },
67 {
L"MENUDM~2",
L"SLECTE~2.LNK",
L"5C2D~2.TXT",
L"423C~2.TXT",
L"925E~2.TXT",
L"7E4C~2.TXT",
L"EEAUC~2.TXT",
L"ECU~2.TXT",
L"TEST~2.X",
L"T$T~2.TXT",
L"LONGFI~2.TXT",
L"LONGFI~2",
L"LONGFI~2.TXT",
L"LONGFI~2",
L"9A16~2" },
68 {
L"MENUDM~2",
L"SLECTE~2.LNK",
L"5C2D~2.TXT",
L"423C~2.TXT",
L"925E~2.TXT",
L"7E4C~2.TXT",
L"EEAUC~2.TXT",
L"ECU~2.TXT",
L"TEST~2.X",
L"T$T~2.TXT",
L"LONGFI~2.TXT",
L"LONGFI~2",
L"LONGFI~2.TXT",
L"LONGFI~2",
L"9A16~2" },
69 {
L"MENUDM~2",
L"SLECTE~2.LNK",
L"5C2D~2.TXT",
L"423C~2.TXT",
L"925E~2.TXT",
L"7E4C~2.TXT",
L"EEAUC~2.TXT",
L"ECU~2.TXT",
L"TEST~2.X",
L"T$T~2.TXT",
L"LONGFI~2.TXT",
L"LONGFI~2",
L"LONGFI~2.TXT",
L"LONGFI~2",
L"9A16~2" },
73 {
L"MENUD\u00C9~1",
L"S\u00C9LECT~1.LNK",
L"\u00C9\u00C8\u00C0\u00D9\u00C7~1.TXT",
L"\u00C7\u00D9\u00C0\u00C8\u00C9~1.TXT",
L"\u00C9\u00C8\u00C0\u00D9~1.TXT",
L"\u00C7\u00D9\u00C0\u00C8~1.TXT",
L"\u00C9\u00C8\u00C0\u00D9\u00C7E~1.TXT",
L"\u00C9E\u00C8\u00C9\u00C7C~1.TXT",
L"TEST~1.\u00C9X\u00C8",
L"T\u00A3$T\u00A4~1.TXT",
L"LONGFI~1.TXT",
L"LONGFI~1",
L"LONGFI~1.TXT",
L"LONGFI~1",
L"9A16~1" },
74 {
L"MENUD\u00C9~1",
L"S\u00C9LECT~1.LNK",
L"\u00C9\u00C8\u00C0\u00D9\u00C7~1.TXT",
L"\u00C7\u00D9\u00C0\u00C8\u00C9~1.TXT",
L"\u00C9\u00C8\u00C0\u00D9~1.TXT",
L"\u00C7\u00D9\u00C0\u00C8~1.TXT",
L"\u00C9\u00C8\u00C0\u00D9\u00C7E~1.TXT",
L"\u00C9E\u00C8\u00C9\u00C7C~1.TXT",
L"TEST~1.\u00C9X\u00C8",
L"T\u00A3$T_~1.TXT",
L"LONGFI~1.TXT",
L"LONGFI~1",
L"LONGFI~1.TXT",
L"LONGFI~1",
L"9A16~1" },
75 {
L"MENUD\u00C9~1",
L"S\u00C9LECT~1.LNK",
L"\u00C9CAU~1.TXT",
L"UAC\u00C9~1.TXT",
L"\u00C9CAU~1.TXT",
L"UAC~1.TXT",
L"\u00C9CAUEE~1.TXT",
L"\u00C9EC\u00C9CU~1.TXT",
L"TEST~1.\u00C9XC",
L"T\u00A3$T\u00A4~1.TXT",
L"LONGFI~1.TXT",
L"LONGFI~1",
L"LONGFI~1.TXT",
L"LONGFI~1",
L"9A16~1" },
76 {
L"MENUDE~1",
L"SELECT~1.LNK",
L"EEAUC~1.TXT",
L"CUAEE~1.TXT",
L"EEAU~1.TXT",
L"CUAE~1.TXT",
L"EEAUCE~1.TXT",
L"EEEECC~1.TXT",
L"TEST~1.EXE",
L"T\uFFE1$T~1.TXT",
L"LONGFI~1.TXT",
L"LONGFI~1",
L"LONGFI~1.TXT",
L"LONGFI~1",
L"\u30c7\u30b9\u30af~1" },
77 {
L"MENUD\u00C9~1",
L"S\u00C9LECT~1.LNK",
L"\u00C9\u00C8\u00C0\u00D9\u00C7~1.TXT",
L"\u00C7\u00D9\u00C0\u00C8\u00C9~1.TXT",
L"\u00C9\u00C8\u00C0\u00D9~1.TXT",
L"\u00C7\u00D9\u00C0\u00C8~1.TXT",
L"\u00C9\u00C8\u00C0\u00D9\u00C7E~1.TXT",
L"\u00C9E\u00C8\u00C9\u00C7C~1.TXT",
L"TEST~1.\u00C9X\u00C8",
L"T\u00A3$T\u00A4~1.TXT",
L"LONGFI~1.TXT",
L"LONGFI~1",
L"LONGFI~1.TXT",
L"LONGFI~1",
L"9A16~1" },
78 {
L"MENUDE~1",
L"SELECT~1.LNK",
L"EEAUC~1.TXT",
L"CUAEE~1.TXT",
L"EEAU~1.TXT",
L"CUAE~1.TXT",
L"EEAUCE~1.TXT",
L"EEEECC~1.TXT",
L"TEST~1.EXE",
L"T\uFFE1$T~1.TXT",
L"LONGFI~1.TXT",
L"LONGFI~1",
L"LONGFI~1.TXT",
L"LONGFI~1",
L"\u30c7\u30b9\u30af~1" },
82 {
L"MENUD\u00C9~2",
L"S\u00C9LECT~2.LNK",
L"\u00C9\u00C8\u00C0\u00D9\u00C7~2.TXT",
L"\u00C7\u00D9\u00C0\u00C8\u00C9~2.TXT",
L"\u00C9\u00C8\u00C0\u00D9~2.TXT",
L"\u00C7\u00D9\u00C0\u00C8~2.TXT",
L"\u00C9\u00C8\u00C0\u00D9\u00C7E~2.TXT",
L"\u00C9E\u00C8\u00C9\u00C7C~2.TXT",
L"TEST~2.\u00C9X\u00C8",
L"T\u00A3$T\u00A4~2.TXT",
L"LONGFI~2.TXT",
L"LONGFI~2",
L"LONGFI~2.TXT",
L"LONGFI~2",
L"9A16~2" },
83 {
L"MENUD\u00C9~2",
L"S\u00C9LECT~2.LNK",
L"\u00C9\u00C8\u00C0\u00D9\u00C7~2.TXT",
L"\u00C7\u00D9\u00C0\u00C8\u00C9~2.TXT",
L"\u00C9\u00C8\u00C0\u00D9~2.TXT",
L"\u00C7\u00D9\u00C0\u00C8~2.TXT",
L"\u00C9\u00C8\u00C0\u00D9\u00C7E~2.TXT",
L"\u00C9E\u00C8\u00C9\u00C7C~2.TXT",
L"TEST~2.\u00C9X\u00C8",
L"T\u00A3$T_~2.TXT",
L"LONGFI~2.TXT",
L"LONGFI~2",
L"LONGFI~2.TXT",
L"LONGFI~2",
L"9A16~2" },
84 {
L"MENUD\u00C9~2",
L"S\u00C9LECT~2.LNK",
L"\u00C9CAU~2.TXT",
L"UAC\u00C9~2.TXT",
L"\u00C9CAU~2.TXT",
L"UAC~2.TXT",
L"\u00C9CAUEE~2.TXT",
L"\u00C9EC\u00C9CU~2.TXT",
L"TEST~2.\u00C9XC",
L"T\u00A3$T\u00A4~2.TXT",
L"LONGFI~2.TXT",
L"LONGFI~2",
L"LONGFI~2.TXT",
L"LONGFI~2",
L"9A16~2" },
85 {
L"MENUDE~2",
L"SELECT~2.LNK",
L"EEAUC~2.TXT",
L"CUAEE~2.TXT",
L"EEAU~2.TXT",
L"CUAE~2.TXT",
L"EEAUCE~2.TXT",
L"EEEECC~2.TXT",
L"TEST~2.EXE",
L"T\uFFE1$T~2.TXT",
L"LONGFI~2.TXT",
L"LONGFI~2",
L"LONGFI~2.TXT",
L"LONGFI~2",
L"\u30c7\u30b9\u30af~2" },
86 {
L"MENUD\u00C9~2",
L"S\u00C9LECT~2.LNK",
L"\u00C9\u00C8\u00C0\u00D9\u00C7~2.TXT",
L"\u00C7\u00D9\u00C0\u00C8\u00C9~2.TXT",
L"\u00C9\u00C8\u00C0\u00D9~2.TXT",
L"\u00C7\u00D9\u00C0\u00C8~2.TXT",
L"\u00C9\u00C8\u00C0\u00D9\u00C7E~2.TXT",
L"\u00C9E\u00C8\u00C9\u00C7C~2.TXT",
L"TEST~2.\u00C9X\u00C8",
L"T\u00A3$T\u00A4~2.TXT",
L"LONGFI~2.TXT",
L"LONGFI~2",
L"LONGFI~2.TXT",
L"LONGFI~2",
L"9A16~2" },
87 {
L"MENUDE~2",
L"SELECT~2.LNK",
L"EEAUC~2.TXT",
L"CUAEE~2.TXT",
L"EEAU~2.TXT",
L"CUAE~2.TXT",
L"EEAUCE~2.TXT",
L"EEEECC~2.TXT",
L"TEST~2.EXE",
L"T\uFFE1$T~2.TXT",
L"LONGFI~2.TXT",
L"LONGFI~2",
L"LONGFI~2.TXT",
L"LONGFI~2",
L"\u30c7\u30b9\u30af~2" },
90 #define LONG_NAMES_COUNT 12 93 L"Long File Name 1.txt",
L"Long File Name 2.txt",
L"Long File Name 3.txt",
L"Long File Name 4.txt",
L"Long File Name 5.txt",
L"Long File Name 6.txt",
94 L"Very Long File Name 1.txt",
L"Very Long File Name 2.txt",
L"Very Long File Name 3.txt",
L"Very Long File Name 4.txt",
L"Very Long File Name 5.txt",
L"Very Long File Name 6.txt",
99 L"LONGFI~1.TXT",
L"LONGFI~2.TXT",
L"LONGFI~3.TXT",
L"LONGFI~4.TXT",
L"LO1796~1.TXT",
L"LO1796~2.TXT",
100 L"VERYLO~1.TXT",
L"VERYLO~2.TXT",
L"VERYLO~3.TXT",
L"VERYLO~4.TXT",
L"VED051~1.TXT",
L"VED051~2.TXT",
126 ok(
RtlEqualUnicodeString(&
Expected, &
ShortName,
FALSE),
"%u,%u:: Generated: %.*S. Expected: %.*S\n",
j,
i,
ShortName.Length /
sizeof(
WCHAR),
ShortName.Buffer,
Expected.Length /
sizeof(
WCHAR),
Expected.Buffer);
131 ok(
RtlEqualUnicodeString(&
Expected, &
ShortName,
FALSE),
"%u,%u:: Generated: %.*S. Expected: %.*S\n",
j,
i,
ShortName.Length /
sizeof(
WCHAR),
ShortName.Buffer,
Expected.Length /
sizeof(
WCHAR),
Expected.Buffer);
137 ok(
RtlEqualUnicodeString(&
Expected, &
ShortName,
FALSE),
"%u,%u:: Generated: %.*S. Expected: %.*S\n",
j,
i,
ShortName.Length /
sizeof(
WCHAR),
ShortName.Buffer,
Expected.Length /
sizeof(
WCHAR),
Expected.Buffer);
147 ok(
RtlEqualUnicodeString(&
Expected, &
ShortName,
FALSE),
"%u,%u:: Generated: %.*S. Expected: %.*S\n",
j,
i,
ShortName.Length /
sizeof(
WCHAR),
ShortName.Buffer,
Expected.Length /
sizeof(
WCHAR),
Expected.Buffer);
IN PDCB IN POEM_STRING IN PUNICODE_STRING IN OUT POEM_STRING ShortName
IN BOOLEAN OUT PSTR Buffer
void SetupLocale(ULONG AnsiCode, ULONG OemCode, ULONG Unicode)
PWSTR LongShortNames[LONG_NAMES_COUNT]
PWSTR ExShortNames1[LOCALES_COUNT][NAMES_COUNT]
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
START_TEST(RtlGenerate8dot3Name)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
PWSTR ShortNames1[LOCALES_COUNT][NAMES_COUNT]
_In_ BOOLEAN _Inout_ PGENERATE_NAME_CONTEXT _Inout_ PUNICODE_STRING Name8dot3
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
NTSYSAPI VOID NTAPI RtlGenerate8dot3Name(_In_ PCUNICODE_STRING Name, _In_ BOOLEAN AllowExtendedCharacters, _Inout_ PGENERATE_NAME_CONTEXT Context, _Inout_ PUNICODE_STRING Name8dot3)
_In_ ULONGLONG _In_ PUNICODE_STRING _In_ PUNICODE_STRING LongName
PWSTR ExShortNames2[LOCALES_COUNT][NAMES_COUNT]
struct tagContext Context
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
#define RtlZeroMemory(Destination, Length)
PWSTR ShortNames2[LOCALES_COUNT][NAMES_COUNT]
PWSTR LongNames[LONG_NAMES_COUNT]
NTSYSAPI BOOLEAN NTAPI RtlEqualUnicodeString(PUNICODE_STRING String1, PUNICODE_STRING String2, BOOLEAN CaseInSensitive)
_In_ BOOLEAN AllowExtendedCharacters