extern static bool _SetLogArchiveMode(
     SafeFileHandle hLog,
     CLFS_LOG_ARCHIVE_MODE eNewMode);
        public static void SetLogArchiveMode(SafeFileHandle hLog,
                                             CLFS_LOG_ARCHIVE_MODE eNewMode)
        {
            if (!_SetLogArchiveMode(hLog, eNewMode))
            {
                uint errorCode = (uint)Marshal.GetLastWin32Error();
                switch (errorCode)
                {
                    case Error.ERROR_INVALID_HANDLE:
                    case Error.ERROR_ACCESS_DENIED:
                    case Error.ERROR_INVALID_PARAMETER:
                        throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(Error.ExceptionForKnownCode(errorCode));

                    default:
                        throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(Error.ExceptionForUnknownCode(errorCode));
                }
            }
        }