| Previous | Next |
| STATUS_UNEXPECTED_MM_MAP_ERROR | STATUS_NOT_LOGON_PROCESS |
STATUS_UNEXPECTED_MM_EXTEND_ERR
Extension changes file-size state and can cross Cache Manager/MM boundaries
STATUS_UNEXPECTED_MM_EXTEND_ERR is the extension-specific generic status used after an unexpected Memory Manager exception is normalized. As with the CREATE and MAP variants, the visible code is not necessarily the original exception. FsRtlNormalizeNtstatus can deliberately replace an unhandled exception with the generic status supplied by its caller.
File extension has state that mapping alone does not. Windows file systems track allocation size, end-of-file, and valid data length as distinct values. RDBSS also documents separate MRxExtendForCache and MRxExtendForNonCache calls, and a zero-extension path used when file size exceeds valid data length. The FILE_END_OF_FILE_INFORMATION contract changes end-of-file and warns that setting it can cause allocation, deallocation, or zeroing behavior depending on the file system and file state.
For this bucket, log old and requested allocation size, EOF, valid data length, cached versus noncached path, section/cache state, and the original exception before normalization. Check whether mapped sections or cache synchronization constrain the resize. Retrying with a smaller length can mask the trigger without explaining it. The page should be correlated with the operation that attempted to grow the stream; otherwise the normalized code has already discarded the detail needed to distinguish resource, I/O, and consistency failures.
What to inspect
- Record allocation size, EOF, valid data length, and requested new size.
- Distinguish cached, noncached, and zero-extension paths.
- Preserve the pre-normalization exception before any retry changes the file-size state.
References
- Microsoft WDK: FsRtlNormalizeNtstatus
- Microsoft WDK: File sizes
- Microsoft WDK: RDBSS object creation and extension callbacks
- Microsoft WDK: FILE_END_OF_FILE_INFORMATION
- Microsoft Open Specifications: NTSTATUS values
Looking for a different code? Search another status or error code.
