VOID LogfCloseAll(VOID) { while (!IsListEmpty(&LogFileListHead)) { LogfClose(LogfListHead(), TRUE); } DeleteCriticalSection(&LogFileListCs); }
VOID LogfCloseAll(VOID) { EnterCriticalSection(&LogFileListCs); while (!IsListEmpty(&LogFileListHead)) { LogfClose(CONTAINING_RECORD(LogFileListHead.Flink, LOGFILE, ListEntry), TRUE); } LeaveCriticalSection(&LogFileListCs); DeleteCriticalSection(&LogFileListCs); }
static NTSTATUS ElfDeleteEventLogHandle(PIELF_HANDLE LogHandle) { PLOGHANDLE lpLogHandle; lpLogHandle = ElfGetLogHandleEntryByHandle(*LogHandle); if (!lpLogHandle) return STATUS_INVALID_HANDLE; RemoveEntryList(&lpLogHandle->LogHandleListEntry); LogfClose(lpLogHandle->LogFile, FALSE); HeapFree(GetProcessHeap(), 0, lpLogHandle); *LogHandle = NULL; return STATUS_SUCCESS; }
static NTSTATUS ElfDeleteEventLogHandle(PIELF_HANDLE LogHandle) { PLOGHANDLE pLogHandle; pLogHandle = ElfGetLogHandleEntryByHandle(*LogHandle); if (!pLogHandle) return STATUS_INVALID_HANDLE; EnterCriticalSection(&LogHandleListCs); RemoveEntryList(&pLogHandle->LogHandleListEntry); LeaveCriticalSection(&LogHandleListCs); LogfClose(pLogHandle->LogFile, FALSE); HeapFree(GetProcessHeap(), 0, pLogHandle); *LogHandle = NULL; return STATUS_SUCCESS; }