Ejemplo n.º 1
0
        static void ReadParamFromReg(out string logFileName, out uint maxLogBuffers)
        {
            // Read log file location from registry if exists
            string logFileNameInRegistry = null;

            RegistryConfigurationProvider wsatTraceProvider = new RegistryConfigurationProvider(RegistryHive.LocalMachine, WsatKeys.WsatRegKey, null);

            using (wsatTraceProvider)
            {
                logFileNameInRegistry = wsatTraceProvider.ReadString(WsatKeys.TraceFileDiectoryKey, null);
                maxLogBuffers         = wsatTraceProvider.ReadUInt32(WsatKeys.MaxTraceBuffersKey, DefaultBuffers);

                if (maxLogBuffers == 0 || maxLogBuffers > MaxLogBuffers)
                {
                    maxLogBuffers = DefaultBuffers;
                    wsatTraceProvider.WriteUInt32(WsatKeys.MaxTraceBuffersKey, DefaultBuffers);
                }
            }

            String errLogFileName = String.Empty;

            try
            {
                if (!String.IsNullOrEmpty(logFileNameInRegistry))
                {
                    logFileNameInRegistry = logFileNameInRegistry.Trim();
                }

                if (!String.IsNullOrEmpty(logFileNameInRegistry))
                {
                    errLogFileName = logFileNameInRegistry;
                    logFileName    = Path.Combine(logFileNameInRegistry, DefaultLogFileName);
                }
                else
                {
                    errLogFileName = Environment.SystemDirectory;
                    logFileName    = Path.Combine(Environment.SystemDirectory, DafaultLogDirectory);
                    errLogFileName = logFileName;
                    logFileName    = Path.Combine(logFileName, DefaultLogFileName);
                }
            }
            catch (ArgumentException)
            {
                throw new WsatAdminException(WsatAdminErrorCode.ETW_SESSION_INVALID_LOGFILE_NAME,
                                             SR.GetString(SR.ErrorSessionInvalidLogFileName, errLogFileName));
            }

            if (logFileName.Length >= SafeNativeMethods.MaxTraceFileNameLen)
            {
                throw new WsatAdminException(WsatAdminErrorCode.ETW_SESSION_TOO_LONG_LOGFILE_NAME,
                                             SR.GetString(SR.ErrorSessionTooLongLogFileName, logFileName));
            }
        }
Ejemplo n.º 2
0
        // For UI to get MaxFileSize saved in registry
        internal static uint GetMaxTraceFileSizeFromReg()
        {
            uint fileSize = 0;

            RegistryConfigurationProvider wsatTraceProvider = new RegistryConfigurationProvider(RegistryHive.LocalMachine, WsatKeys.WsatRegKey, null);

            using (wsatTraceProvider)
            {
                fileSize = wsatTraceProvider.ReadUInt32(WsatKeys.MaxTraceSizeKey, DefaultLogFileSize);
            }

            return(fileSize);
        }
Ejemplo n.º 3
0
        static void ReadParamFromReg(out string logFileName, out uint maxLogBuffers)
        {
            // Read log file location from registry if exists
            string logFileNameInRegistry = null;

            RegistryConfigurationProvider wsatTraceProvider = new RegistryConfigurationProvider(RegistryHive.LocalMachine, WsatKeys.WsatRegKey, null);
            using (wsatTraceProvider)
            {
                logFileNameInRegistry = wsatTraceProvider.ReadString(WsatKeys.TraceFileDiectoryKey, null);
                maxLogBuffers = wsatTraceProvider.ReadUInt32(WsatKeys.MaxTraceBuffersKey, DefaultBuffers);

                if (maxLogBuffers == 0 || maxLogBuffers > MaxLogBuffers)
                {
                    maxLogBuffers = DefaultBuffers;
                    wsatTraceProvider.WriteUInt32(WsatKeys.MaxTraceBuffersKey, DefaultBuffers);
                }
            }

            String errLogFileName = String.Empty;
            try
            {
                if (!String.IsNullOrEmpty(logFileNameInRegistry))
                {
                    logFileNameInRegistry = logFileNameInRegistry.Trim();
                }

                if (!String.IsNullOrEmpty(logFileNameInRegistry))
                {
                    errLogFileName = logFileNameInRegistry;
                    logFileName = Path.Combine(logFileNameInRegistry, DefaultLogFileName);
                }
                else
                {
                    errLogFileName = Environment.SystemDirectory;
                    logFileName = Path.Combine(Environment.SystemDirectory, DafaultLogDirectory);
                    errLogFileName = logFileName;
                    logFileName = Path.Combine(logFileName, DefaultLogFileName);
                }
            }
            catch (ArgumentException)
            {
                throw new WsatAdminException(WsatAdminErrorCode.ETW_SESSION_INVALID_LOGFILE_NAME,
                                             SR.GetString(SR.ErrorSessionInvalidLogFileName, errLogFileName));
            }

            if (logFileName.Length >= SafeNativeMethods.MaxTraceFileNameLen)
            {
                throw new WsatAdminException(WsatAdminErrorCode.ETW_SESSION_TOO_LONG_LOGFILE_NAME,
                                             SR.GetString(SR.ErrorSessionTooLongLogFileName, logFileName));
            }
        }
Ejemplo n.º 4
0
        // For UI to get MaxFileSize saved in registry
        internal static uint GetMaxTraceFileSizeFromReg()
        {
            uint fileSize = 0;

            RegistryConfigurationProvider wsatTraceProvider = new RegistryConfigurationProvider(RegistryHive.LocalMachine, WsatKeys.WsatRegKey, null);
            using (wsatTraceProvider)
            {
                fileSize = wsatTraceProvider.ReadUInt32(WsatKeys.MaxTraceSizeKey, DefaultLogFileSize);
            }

            return fileSize;
        }