[KERNEL32]

- Fix a misspelling.

[NTDLL]
- Fix the prototypes of RtlFormatMessageEx(Ex), this fixes strange apps kills when they use FormatMessage[A/W] with win2k3 kernel32 (that uses internally RtlFormatMessage to do the job).

svn path=/trunk/; revision=65450
This commit is contained in:
Hermès Bélusca-Maïto 2014-11-22 23:13:41 +00:00
parent b280f71b27
commit 0f5d768793
4 changed files with 56 additions and 39 deletions

View file

@ -630,8 +630,8 @@
@ stdcall RtlFirstFreeAce(ptr ptr)
@ stdcall RtlFlushSecureMemoryCache(ptr ptr)
@ stdcall RtlFormatCurrentUserKeyPath(ptr)
@ stdcall RtlFormatMessage(ptr long long long long ptr ptr long)
@ stdcall RtlFormatMessageEx(ptr long long long long ptr ptr long long)
@ stdcall RtlFormatMessage(ptr long long long long ptr ptr long ptr)
@ stdcall RtlFormatMessageEx(ptr long long long long ptr ptr long ptr long)
@ stdcall RtlFreeActivationContextStack(ptr)
@ stdcall RtlFreeAnsiString(long)
@ stdcall RtlFreeHandle(ptr ptr)

View file

@ -3992,7 +3992,7 @@ StartScan:
if (!NT_SUCCESS(Status))
{
/* Bail out on failure */
DPRINT1("Failed to reserved memory for VDM: %lx\n", Status);
DPRINT1("Failed to reserve memory for VDM: %lx\n", Status);
BaseSetLastNTError(Status);
Result = FALSE;
goto Quickie;

View file

@ -2177,7 +2177,7 @@ ULONG WINAPI RtlFindSetBitsAndClear(PRTL_BITMAP,ULONG,ULONG);
ULONG WINAPI RtlFindSetRuns(PCRTL_BITMAP,PRTL_BITMAP_RUN,ULONG,BOOLEAN);
BOOLEAN WINAPI RtlFirstFreeAce(PACL,PACE_HEADER *);
NTSTATUS WINAPI RtlFormatCurrentUserKeyPath(PUNICODE_STRING);
NTSTATUS WINAPI RtlFormatMessage(LPWSTR,UCHAR,BOOLEAN,BOOLEAN,BOOLEAN,va_list *,LPWSTR,ULONG);
NTSTATUS WINAPI RtlFormatMessage(PWSTR,ULONG,BOOLEAN,BOOLEAN,BOOLEAN,va_list *,PWSTR,ULONG,PULONG);
void WINAPI RtlFreeAnsiString(PANSI_STRING);
BOOLEAN WINAPI RtlFreeHandle(RTL_HANDLE_TABLE *,RTL_HANDLE *);
BOOLEAN WINAPI RtlFreeHeap(HANDLE,ULONG,PVOID);

View file

@ -20,11 +20,11 @@
NTSTATUS
NTAPI
RtlFindMessage(
PVOID BaseAddress,
ULONG Type,
ULONG Language,
ULONG MessageId,
PMESSAGE_RESOURCE_ENTRY *MessageResourceEntry)
IN PVOID BaseAddress,
IN ULONG Type,
IN ULONG Language,
IN ULONG MessageId,
OUT PMESSAGE_RESOURCE_ENTRY* MessageResourceEntry)
{
LDR_RESOURCE_INFO ResourceInfo;
PIMAGE_RESOURCE_DATA_ENTRY ResourceDataEntry;
@ -122,41 +122,47 @@ RtlFindMessage(
return STATUS_SUCCESS;
}
/*
* @unimplemented
*/
NTSTATUS
NTAPI
RtlFormatMessageEx(
PWSTR Message,
UCHAR MaxWidth,
BOOLEAN IgnoreInserts,
BOOLEAN Ansi,
BOOLEAN ArgumentIsArray,
va_list *Arguments,
PWSTR Buffer,
ULONG BufferSize,
ULONG Flags)
IN PWSTR Message,
IN ULONG MaxWidth OPTIONAL,
IN BOOLEAN IgnoreInserts,
IN BOOLEAN ArgumentsAreAnsi,
IN BOOLEAN ArgumentsAreAnArray,
IN va_list* Arguments,
OUT PWSTR Buffer,
IN ULONG BufferSize,
OUT PULONG ReturnLength OPTIONAL,
IN ULONG Flags)
{
DPRINT1("RtlFormatMessage(%S, %u, %s, %s, %s, %s, %p, %lu %lx)\n",
Message, MaxWidth, IgnoreInserts ? "TRUE" : "FALSE", Ansi ? "TRUE" : "FALSE",
ArgumentIsArray ? "TRUE" : "FALSE", (PSTR)Arguments, Buffer, BufferSize, Flags);
DPRINT1("RtlFormatMessage(%S, %lu, %s, %s, %s, %p, %p, %lu, %p, %lx)\n",
Message, MaxWidth, IgnoreInserts ? "TRUE" : "FALSE", ArgumentsAreAnsi ? "TRUE" : "FALSE",
ArgumentsAreAnArray ? "TRUE" : "FALSE", Arguments, Buffer, BufferSize,
ReturnLength, Flags);
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
}
/**********************************************************************
* RtlFormatMessage (NTDLL.@)
* RtlFormatMessage (NTDLL.@)
*
* Formats a message (similar to sprintf).
*
* PARAMS
* Message [I] Message to format.
* MaxWidth [I] Maximum width in characters of each output line.
* IgnoreInserts [I] Whether to copy the message without processing inserts.
* Ansi [I] Whether Arguments may have ANSI strings.
* ArgumentsIsArray [I] Whether Arguments is actually an array rather than a va_list *.
* Arguments [I]
* Buffer [O] Buffer to store processed message in.
* BufferSize [I] Size of Buffer (in bytes?).
* Message [I] Message to format.
* MaxWidth [I] Maximum width in characters of each output line (optional).
* IgnoreInserts [I] Whether to copy the message without processing inserts.
* ArgumentsAreAnsi [I] Whether Arguments may have ANSI strings.
* ArgumentsAreAnArray [I] Whether Arguments is actually an array rather than a va_list *.
* Arguments [I]
* Buffer [O] Buffer to store processed message in.
* BufferSize [I] Size of Buffer (in bytes).
* ReturnLength [O] Size of the formatted message (in bytes; optional).
*
* RETURNS
* NTSTATUS code.
@ -166,16 +172,27 @@ RtlFormatMessageEx(
NTSTATUS
NTAPI
RtlFormatMessage(
PWSTR Message,
UCHAR MaxWidth,
BOOLEAN IgnoreInserts,
BOOLEAN Ansi,
BOOLEAN ArgumentIsArray,
va_list *Arguments,
PWSTR Buffer,
ULONG BufferSize)
IN PWSTR Message,
IN ULONG MaxWidth OPTIONAL,
IN BOOLEAN IgnoreInserts,
IN BOOLEAN ArgumentsAreAnsi,
IN BOOLEAN ArgumentsAreAnArray,
IN va_list* Arguments,
OUT PWSTR Buffer,
IN ULONG BufferSize,
OUT PULONG ReturnLength OPTIONAL)
{
return RtlFormatMessageEx(Message, MaxWidth, IgnoreInserts, Ansi, ArgumentIsArray, Arguments, Buffer, BufferSize, 0);
/* Call the extended API */
return RtlFormatMessageEx(Message,
MaxWidth,
IgnoreInserts,
ArgumentsAreAnsi,
ArgumentsAreAnArray,
Arguments,
Buffer,
BufferSize,
ReturnLength,
0);
}
/* EOF */