Pass nt paths to ElfrBackupELFW and ElfrClearELFW.
svn path=/trunk/; revision=54846
BackupEventLogA(IN HANDLE hEventLog,
IN LPCSTR lpBackupFileName)
{
BackupEventLogA(IN HANDLE hEventLog,
IN LPCSTR lpBackupFileName)
{
- ANSI_STRING BackupFileName;
+ ANSI_STRING BackupFileNameA;
+ UNICODE_STRING BackupFileNameW;
TRACE("%p, %s\n", hEventLog, lpBackupFileName);
TRACE("%p, %s\n", hEventLog, lpBackupFileName);
- RtlInitAnsiString(&BackupFileName, lpBackupFileName);
-
- RpcTryExcept
- {
- Status = ElfrBackupELFA(hEventLog,
- (PRPC_STRING)&BackupFileName);
- }
- RpcExcept(EXCEPTION_EXECUTE_HANDLER)
+ if (lpBackupFileName == NULL)
- Status = I_RpcMapWin32Status(RpcExceptionCode());
+ SetLastError(ERROR_INVALID_PARAMETER);
+ return FALSE;
+ RtlInitAnsiString(&BackupFileNameA, lpBackupFileName);
+
+ Status = RtlAnsiStringToUnicodeString(&BackupFileNameW,
+ &BackupFileNameA,
+ TRUE);
if (!NT_SUCCESS(Status))
{
SetLastError(RtlNtStatusToDosError(Status));
return FALSE;
}
if (!NT_SUCCESS(Status))
{
SetLastError(RtlNtStatusToDosError(Status));
return FALSE;
}
+ Result = BackupEventLogW(hEventLog,
+ BackupFileNameW.Buffer);
+
+ RtlFreeUnicodeString(&BackupFileNameW);
+
+ return(Result);
/******************************************************************************
* BackupEventLogW [ADVAPI32.@]
*
/******************************************************************************
* BackupEventLogW [ADVAPI32.@]
*
BackupEventLogW(IN HANDLE hEventLog,
IN LPCWSTR lpBackupFileName)
{
BackupEventLogW(IN HANDLE hEventLog,
IN LPCWSTR lpBackupFileName)
{
- UNICODE_STRING BackupFileName;
+ UNICODE_STRING BackupFileNameW;
NTSTATUS Status;
TRACE("%p, %s\n", hEventLog, debugstr_w(lpBackupFileName));
NTSTATUS Status;
TRACE("%p, %s\n", hEventLog, debugstr_w(lpBackupFileName));
- RtlInitUnicodeString(&BackupFileName, lpBackupFileName);
+ if (lpBackupFileName == NULL)
+ {
+ SetLastError(ERROR_INVALID_PARAMETER);
+ return FALSE;
+ }
+
+ if (!RtlDosPathNameToNtPathName_U(lpBackupFileName, &BackupFileNameW,
+ NULL, NULL))
+ {
+ SetLastError(ERROR_INVALID_PARAMETER);
+ return FALSE;
+ }
RpcTryExcept
{
Status = ElfrBackupELFW(hEventLog,
RpcTryExcept
{
Status = ElfrBackupELFW(hEventLog,
- (PRPC_UNICODE_STRING)&BackupFileName);
+ (PRPC_UNICODE_STRING)&BackupFileNameW);
}
RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
}
RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
+ RtlFreeHeap(RtlGetProcessHeap(), 0, BackupFileNameW.Buffer);
+
if (!NT_SUCCESS(Status))
{
SetLastError(RtlNtStatusToDosError(Status));
if (!NT_SUCCESS(Status))
{
SetLastError(RtlNtStatusToDosError(Status));
ClearEventLogA(IN HANDLE hEventLog,
IN LPCSTR lpBackupFileName)
{
ClearEventLogA(IN HANDLE hEventLog,
IN LPCSTR lpBackupFileName)
{
- ANSI_STRING BackupFileName;
+ ANSI_STRING BackupFileNameA;
+ UNICODE_STRING BackupFileNameW;
TRACE("%p, %s\n", hEventLog, lpBackupFileName);
TRACE("%p, %s\n", hEventLog, lpBackupFileName);
- RtlInitAnsiString(&BackupFileName, lpBackupFileName);
-
- RpcTryExcept
+ if (lpBackupFileName == NULL)
- Status = ElfrClearELFA(hEventLog,
- (PRPC_STRING)&BackupFileName);
+ RtlInitUnicodeString(&BackupFileNameW, NULL);
- RpcExcept(EXCEPTION_EXECUTE_HANDLER)
- Status = I_RpcMapWin32Status(RpcExceptionCode());
- }
- RpcEndExcept;
+ RtlInitAnsiString(&BackupFileNameA, lpBackupFileName);
- if (!NT_SUCCESS(Status))
- {
- SetLastError(RtlNtStatusToDosError(Status));
- return FALSE;
+ Status = RtlAnsiStringToUnicodeString(&BackupFileNameW,
+ &BackupFileNameA,
+ TRUE);
+ if (!NT_SUCCESS(Status))
+ {
+ SetLastError(RtlNtStatusToDosError(Status));
+ return FALSE;
+ }
+ Result = ClearEventLogW(hEventLog,
+ BackupFileNameW.Buffer);
+
+ RtlFreeUnicodeString(&BackupFileNameW);
+
+ return Result;
ClearEventLogW(IN HANDLE hEventLog,
IN LPCWSTR lpBackupFileName)
{
ClearEventLogW(IN HANDLE hEventLog,
IN LPCWSTR lpBackupFileName)
{
- UNICODE_STRING BackupFileName;
+ UNICODE_STRING BackupFileNameW;
NTSTATUS Status;
TRACE("%p, %s\n", hEventLog, debugstr_w(lpBackupFileName));
NTSTATUS Status;
TRACE("%p, %s\n", hEventLog, debugstr_w(lpBackupFileName));
- RtlInitUnicodeString(&BackupFileName,lpBackupFileName);
+ if (lpBackupFileName == NULL)
+ {
+ RtlInitUnicodeString(&BackupFileNameW, NULL);
+ }
+ else
+ {
+ if (!RtlDosPathNameToNtPathName_U(lpBackupFileName, &BackupFileNameW,
+ NULL, NULL))
+ {
+ SetLastError(ERROR_INVALID_PARAMETER);
+ return FALSE;
+ }
+ }
RpcTryExcept
{
Status = ElfrClearELFW(hEventLog,
RpcTryExcept
{
Status = ElfrClearELFW(hEventLog,
- (PRPC_UNICODE_STRING)&BackupFileName);
+ (PRPC_UNICODE_STRING)&BackupFileNameW);
}
RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
}
RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
+ if (lpBackupFileName != NULL)
+ RtlFreeHeap(RtlGetProcessHeap(), 0, BackupFileNameW.Buffer);
+
if (!NT_SUCCESS(Status))
{
SetLastError(RtlNtStatusToDosError(Status));
if (!NT_SUCCESS(Status))
{
SetLastError(RtlNtStatusToDosError(Status));