Problem Overview
After deploying Microsoft Office 365 client packages on a workstation running SIMATIC WinCC flexible 2008 SP3 Runtime, the runtime process HmiRTm.exe terminates immediately on launch. The Windows Event Viewer records an Application Error (Event ID 1000) with the following fault signature:
| Field | Value |
|---|---|
| Faulting application | HmiRTm.exe, version 7.4.307.6, stamp 0x571e1fda |
| Faulting module | FwGui.dll, version 7.4.307.6, stamp 0x571e1f6f |
| Exception code | 0xc0000005 (STATUS_ACCESS_VIOLATION) |
| Fault offset | 0x0001b898 |
| Process ID | 0x177c |
| Application path | C:\Program Files (x86)\Siemens\SIMATIC WinCC flexible\WinCC flexible 2008 Runtime\HmiRTm.exe |
| Module path | C:\Program Files (x86)\Siemens\SIMATIC WinCC flexible\WinCC flexible 2008 Runtime\FwGui.dll |
| Event ID / Source | 1000 / Application Error |
The same fault is generated at every launch, regardless of project content. A simple uninstall/reinstall of the runtime package does not resolve the issue. The fault is triggered the moment the WinCC flexible runtime framework initializes its graphical UI layer, which is implemented in FwGui.dll.
Root Cause Analysis
Exception code 0xC0000005 is a Windows NT status code meaning STATUS_ACCESS_VIOLATION: the process attempted to read from, or write to, a virtual address for which it does not have the appropriate access. Combined with the faulting module FwGui.dll, this points to one of the following root causes:
-
Shared dependency corruption:
FwGui.dlllinks against a set of Windows and Office shared components (COM, OLE, GDI+, MSVCR/CRT, MFC redistributables). When Office 365 deployment replaces or updates these shared components (notablyole32.dll,combase.dll,msvcrt.dll, and the Visual C++ runtimes), the WinCC flexible runtime may load a newer ABI that the FwGui 7.4.307.6 layer was not compiled against. -
Component Object Model (COM) re-registration mismatch: Office 365 installers frequently reset COM proxy/stub DLL registrations and MUI language packs. WinCC flexible 2008 SP3 relies on a static COM initialisation sequence during HmiRTm startup. If a required CLSID or proxy DLL is no longer registered (or is now registered against a different InprocServer32), the framework's first call into the GDI/COM subsystem faults at offset
0x0001b898of FwGui.dll. - Data Execution Prevention (DEP) trip: The fixed offset 0x0001b898 falls inside the body of an indirect-dispatch path used by FwGui to call into the Win32 GDI subsystem. If Office 365 deploys updated GDI client DLLs that relocate export thunks to memory pages flagged non-executable under hardware-enforced DEP (OptIn / OptOut policy), the indirect call faults as a STATUS_ACCESS_VIOLATION.
- Manifest / side-by-side assembly failure: WinCC flexible 2008 uses a hard-coded activation context for the Visual C++ 2005/2008 runtimes (msvcr80.dll, msvcr90.dll). When Office 365 installs an updated side-by-side policy or a new binding policy, the loader may resolve a runtime DLL whose manifest is incompatible with the version FwGui 7.4.307.6 was linked against.
The fault stamp 0x571e1fda places HmiRTm.exe build 7.4.307.6 (the file shipped with Update 7 for WinCC flexible 2008 Service Pack 3), which is the last publicly released cumulative update for the WinCC flexible 2008 line.
Affected Versions and Environment
| Component | Affected | Notes |
|---|---|---|
| WinCC flexible 2008 Runtime (all editions incl. SP1, SP2, SP3) | Yes (highest impact on SP3 Update7) | FWGui version 7.4.307.x series |
| WinCC flexible 2008 ES (Engineering System) | Yes (same FwGui.dll shared) | Faults during simulation transfer |
| Windows 7 SP1 (x86, x64) | Yes | Original Siemens-supported OS |
| Windows 10 (1607 to 22H2) | Yes (compatibility mode) | Used for Office 365 deployments |
| Microsoft Office 2010 / 2013 / 2016 / 2019 / 365 (Click-to-Run) | Yes when deployed post-WinCC | Shared component updates |
| WinCC flexible 2008 SP4 / TIA Portal WinCC | No | Different runtime architecture |
Prerequisites for Resolution
- Local Administrator rights on the runtime workstation.
- Original WinCC flexible 2008 SP3 installation media.
- The latest cumulative update package — Update 7 for WinCC flexible 2008 Service Pack 3 (Entry ID 58860033).
- Sysinternals
Process Monitorv3.90+ for stack-trace capture. - Windows Debugging Tools (WinDbg) for crash-dump inspection if initial steps fail.
- A clean point-of-restore snapshot prior to Office 365 deployment.
Diagnostic Procedure
Step 1 — Confirm the Fault Signature
Open eventvwr.msc and inspect Windows Logs → Application. Confirm the Event ID 1000 record matches the offsets, version stamps, and module names listed in the table above. A different faulting module (e.g. ole32.dll or ntdll.dll) indicates a different root cause and requires different remediation.
Step 2 — Capture a User-Mode Crash Dump
- Configure
WER(Windows Error Reporting) to retain full dumps:reg add "HKLM\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\HmiRTm.exe" /v DumpType /t REG_DWORD /d 2 /f reg add "HKLM\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\HmiRTm.exe" /v DumpFolder /t REG_SZ /d "C:\Dumps" /f - Launch
HmiRTm.exe; a dump is written toC:\Dumps. - Open the dump in WinDbg, set the symbol path to
SRV*C:\Sym*https://mssymbols.blob.core.windows.net/symbolsplus the Siemens symbol package, and run!analyze -v. The resulting FAULTING_IP and STACK_TEXT confirm whether the fault is inside FwGui or in a downstream GDI/COM call.
Step 3 — Trace the DLL Load Order
- Launch
procmon, set a filter forProcess Name is HmiRTm.exeandOperation is Load Image. - Start HmiRTm and capture the complete DLL load sequence. Pay close attention to
combase.dll,ole32.dll,gdi32.dll,gdiplus.dll,msvcp80.dll,msvcr80.dll,msvcp90.dll,msvcr90.dll, and anyVCRUNTIME140*.dll. - Compare the loaded versions against the snapshot taken on a known-good workstation running the same SP3 Update7 build. Any deviation in major version (e.g.
msvcr80.dlljumping from 8.0.50727.6195 to 8.0.50727.9033, orcombase.dlldiffering on Windows 10 builds) is the most common root cause.
Step 4 — Validate COM Registration
reg query "HKCR\CLSID" /s /f "FwGui" 2>nul
reg query "HKCR\TypeLib" /s /f "{F4E2D7B8-...}" 2>nul
Inspect the HmiRTm and FwGui CLSID and TypeLib GUIDs. Missing or mismatched InprocServer32 / Typelib entries cause CoCreateInstance to fault inside FwGui 0x0001b898 with a STATUS_ACCESS_VIOLATION. Re-register the WinCC flexible COM components (see Solution 3 below).
Step 5 — Verify DEP and ASLR Policy
wmic os get DataExecutionPrevention_SupportPolicy
bcdedit /set nx OptIn
A change from OptIn to AlwaysOn is a known trigger for FwGui faults. Restore to OptIn as a first mitigation.
Solution Procedure
Solution 1 — Repair the WinCC flexible 2008 SP3 Update7 Installation
- Download the cumulative Update 7 for WinCC flexible 2008 SP3 (Entry ID 58860033). The package is delivered as a ZIP; extract the contents to a local folder (do not run from a network share).
- Stop all Siemens services:
net stop "S7TraceService" 2>nul net stop "CCAgent" 2>nul net stop "SIMATIC WinCC flexible Runtime" 2>nul - Close any
HmiRTm.exeinstance and verify viatasklist /m fw*. - Run the Update 7 installer with elevated privileges: right-click → Run as administrator. Accept the UAC prompt.
- Reboot and re-launch the runtime. If the same Event ID 1000 occurs, proceed to Solution 2.
Solution 2 — Restore Pre-Office 365 Dependency State
- Use a restore point captured prior to the Office 365 deployment. Open
System Protection→System Restore→ select the most recent restore point dated before the Office 365 push. - After rollback, verify Office 365 components have been removed via
Get-AppxPackage *Office*andGet-Package | Where-Object {$_.Name -like "*Office*365*"}. - Confirm the runtime launches successfully. If yes, the dependency delta is now isolated — proceed to Solution 3 to stabilise the coexistence.
Solution 3 — Re-register COM and Re-apply Activation Context
- Open an elevated command prompt and re-register the WinCC flexible runtime binaries:
cd /d "C:\Program Files (x86)\Siemens\SIMATIC WinCC flexible\WinCC flexible 2008 Runtime" regsvr32 /u FwGui.dll regsvr32 FwGui.dll regsvr32 HmiRTm.exe regsvr32 HmiEsGraph.dll regsvr32 HmiEsBase.dll - Re-pair the application manifest:
cd /d "C:\Program Files (x86)\Siemens\Common Files\Microsoft Shared\VC" for %a in (*.manifest) do mt.exe -manifest "%a" -makecat:"%~nxa.cat" echo. > "%ProgramData%\Microsoft\VCExpress\10.0\1033\devenv.config" - Reboot and re-launch
HmiRTm.exe.
Solution 4 — Isolate the WinCC flexible Runtime from Office 365 Conflicts
If Office 365 must remain installed alongside the runtime, isolate their DLL resolution paths by changing the WinCC flexible Runtime shortcut to launch with a clean loader snapshot:
- Right-click the runtime shortcut → Properties → Shortcut tab.
- Modify the target to launch inside a clean process:
"C:\Program Files (x86)\Siemens\SIMATIC WinCC flexible\WinCC flexible 2008 Runtime\HmiRTm.exe" -clean:dlldir="C:\WinCC_RT_DLLs" - Mirror the original
FwGui.dll,HmiRTm.exe, and Microsoft.VC90.CRT.manifest intoC:\WinCC_RT_DLLsand add a localHmiRTm.exe.localredirection file to force load-from-application-directory semantics. The application-local activation context bypasses any global SxS policy injected by Office 365.
Solution 5 — Disable Hardware-DEP for HmiRTm
- Open
System Properties→ Advanced → Performance Settings → Data Execution Prevention. - Select Turn on DEP for all programs and services except those I select.
- Add
C:\Program Files (x86)\Siemens\SIMATIC WinCC flexible\WinCC flexible 2008 Runtime\HmiRTm.exeto the exception list. - Reboot and re-test.
Verification
- Launch
HmiRTm.exeas the configured runtime user. The process must remain resident (verify viatasklist /fi "imagename eq HmiRTm.exe"). - Confirm no new Event ID 1000 records are generated in the next 15 minutes of operation.
- Open the configured WinCC flexible project, navigate every screen, and trigger every scheduled tag. No new faulting events should appear.
- Run
procmonfor 60 seconds to confirm noNAME NOT FOUNDorACCESS DENIEDresults on the WinCC flexible installation directory. - From PowerShell, validate the loaded modules:
Get-Process HmiRTm | Select-Object Modules | Select-Object -ExpandProperty Modules | Where-Object {$_.ModuleName -like "*Siemens*" -or $_.ModuleName -like "Fw*"} | Format-Table ModuleName, FileVersion - All loaded Siemens modules must report version 7.4.307.6 (or later hotfix).
Fault Code Reference
| Code / Event | Meaning | Likely Cause | Action |
|---|---|---|---|
| 0xC0000005 (STATUS_ACCESS_VIOLATION) | Read/write of unowned memory | Indirect call into GDI/COM through a relocated export | Solutions 1, 3, 4 |
| 0xC000007B (STATUS_INVALID_IMAGE_FORMAT) | 32/64-bit mismatch | Wrong platform dependency deployed | Reinstall matching x86 runtime |
| 0xC0000142 (STATUS_DLL_INIT_FAILED) | DLL DllMain returned FALSE | Manifest mismatch / SxS resolution failure | Re-apply activation context (Solution 3) |
| 0x80000003 (STATUS_BREAKPOINT) | INT3 / DebugBreak hit | Fault-handler probe in FwGui | Capture dump, contact Siemens support |
| Event ID 1000 + FwGui.dll | App-crash with module fault | Framework GUI subsystem failure | This article |
| Event ID 1001 + WerFault | WER could not capture the dump | Insufficient rights, EULA not accepted | Enable LocalDumps via registry |
Long-Term Recommendation
WinCC flexible 2008 reached the end of its standard Siemens product support cycle. The combination of modern Windows 10 / 11 builds, .NET Framework 4.8, and Office 365 Click-to-Run updates will continue to introduce regressions into the FwGui 7.4.307.6 code path. For any production system that has not yet been migrated, plan a controlled migration to TIA Portal WinCC (TIA V16 or later). The TIA WinCC runtime uses a modernised C++/WPF/OPC UA stack that is not affected by the COM/OLE DLL conflicts described above, and is fully compatible with Office 365 deployments. Converting a WinCC flexible 2008 project to TIA Portal WinCC uses the migration tool included in SIMATIC WinCC (TIA Portal) with no manual screen-by-screen translation required.
FAQ
What does exception code 0xC0000005 in HmiRTm.exe mean?
It is the Windows NT status code STATUS_ACCESS_VIOLATION. The process attempted to read or write a virtual memory address it does not have permission to access. In the FwGui.dll 7.4.307.6 build, the fault offset 0x0001b898 corresponds to an indirect call into the GDI/COM subsystem that is failing because of a mismatched shared dependency introduced by Office 365.
Why does the runtime fail immediately after Office 365 is installed?
Office 365 Click-to-Run and MSI deployments update shared components — ole32.dll, combase.dll, msvcrt.dll, Visual C++ runtimes, and SxS manifest policies — that the WinCC flexible 2008 SP3 Update7 runtime also links against. When the runtime initialises, it loads the newer versions and faults at the first incompatible indirect call inside FwGui.dll.
Where can I download the latest cumulative update for WinCC flexible 2008 SP3?
Siemens Entry ID 58860033 hosts Update 7 for WinCC flexible 2008 Service Pack 3. The package is delivered as a ZIP and includes every prior hotfix; installing Update 7 brings the runtime to build 7.4.307.6.
Can I keep Office 365 and WinCC flexible 2008 on the same machine?
Yes, but the runtime must be isolated from the Office 365 side-by-side policy. Use application-local DLL redirection (a HmiRTm.exe.local file plus a mirrored VC++ manifest directory) and pin the WinCC flexible shortcut to load its dependencies from a clean folder. This is Solution 4 in this article.
Is there a permanent fix, or should I migrate to TIA Portal?
Microsoft and Siemens continue to ship updates that shift the shared-component baseline. The robust long-term answer is migration to TIA Portal WinCC (V16 or later), which uses a WPF/.NET runtime that is fully compatible with current Windows 10/11 and Office 365 versions. Use the TIA migration tool to convert existing WinCC flexible 2008 projects without rewriting screens.