/****************************************************************************** * ClearEventLogW [ADVAPI32.@] */ BOOL WINAPI ClearEventLogW(IN HANDLE hEventLog, IN LPCWSTR lpBackupFileName) { UNICODE_STRING BackupFileNameW; NTSTATUS Status; TRACE("%p, %s\n", hEventLog, debugstr_w(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, (PRPC_UNICODE_STRING)&BackupFileNameW); } RpcExcept(EXCEPTION_EXECUTE_HANDLER) { Status = I_RpcMapWin32Status(RpcExceptionCode()); } RpcEndExcept; if (lpBackupFileName != NULL) RtlFreeHeap(RtlGetProcessHeap(), 0, BackupFileNameW.Buffer); if (!NT_SUCCESS(Status)) { SetLastError(RtlNtStatusToDosError(Status)); return FALSE; } return TRUE; }
/* Function 12 */ NTSTATUS ElfrClearELFA( IELF_HANDLE LogHandle, PRPC_STRING BackupFileName) { NTSTATUS Status; UNICODE_STRING BackupFileNameW; Status = RtlAnsiStringToUnicodeString(&BackupFileNameW, (PANSI_STRING)BackupFileName, TRUE); if (!NT_SUCCESS(Status)) return Status; Status = ElfrClearELFW(LogHandle, (PRPC_UNICODE_STRING)&BackupFileNameW); RtlFreeUnicodeString(&BackupFileNameW); return Status; }