What does NTSTATUS 0xC0009898 (STATUS_WOW_ASSERTION) mean?

 
Previous Next
STATUS_FILE_HANDLE_REVOKED STATUS_INVALID_SIGNATURE

STATUS_WOW_ASSERTION

Treat the assertion as compatibility-layer state, not as a documented application error code

STATUS_WOW_ASSERTION marks an internal assertion in the legacy Windows-on-Windows compatibility layer. In this context WOW refers to the legacy Windows-on-Windows compatibility environment associated with 16-bit Windows execution, not the generic idea of a 32-bit application running under modern WOW64. Microsoft documents NTVDM as the environment for 16-bit Windows and DOS applications on 32-bit Windows and separately documents WOW64 selector inspection for 32-bit threads.

An assertion indicates that compatibility-layer code reached a state its implementation expected not to occur. The public NTSTATUS catalog does not identify the failed invariant or assertion site, so a custom page should not invent one. The most valuable evidence is the earlier VDM/WOW activity, guest application identity, module versions, and first-chance exception sequence that led to the assertion.

Capture a dump at the first occurrence, preserve the exact 16-bit application and compatibility files, and record whether the application shares an NTVDM instance with other 16-bit processes. Compare on a clean system with the same Windows build before modifying compatibility binaries. Do not treat the status as equivalent to an application-supplied assert(); the name specifically points to the Windows compatibility layer, while the precise internal assertion remains undocumented publicly.

What to inspect

  • Preserve the first dump and the events immediately before the assertion; later termination may lose the internal state.
  • Record the guest 16-bit application and whether its NTVDM instance is shared.
  • Do not conflate legacy WOW with WOW64 when identifying the subsystem and selector/debugging tools.

References


Looking for a different code? Search another status or error code.