| Previous | Next |
| hrInvalidOperation |
hrAccessDenied
The object and state that matter
hrAccessDenied means ESE rejected access at an object or operation boundary under the current identity/mode.
This is the legacy Directory Service backup/restore HRESULT form of JET_errAccessDenied (0xC8000773).
The key comparison is: hrFileAccessDenied isolates file-system access and hrPermissionDenied emphasizes missing permission. The first useful observation is to record API, desired mode, database/table flags, effective token, ACLs, and conflicting exclusive ownership. This evidence distinguishes access, operating-system I/O, integrity verification, missing files, and log corruption.
Minimum useful trace
- Code-specific observation: record API, desired mode, database/table flags, effective token, ACLs, and conflicting exclusive ownership.
- database, log, checkpoint, and temporary-file generations present at the first event; associate it with this result rather than with a later generic exception.
- storage, filter-driver, antivirus, and system events from the same time window; associate it with this result rather than with a later generic exception.
- the exact file, offset, length, access mode, and underlying Win32 status.
How to avoid a false diagnosis
hrTempFileOpenError | ESE could not create or open a temporary file needed for sorting, maintenance, or recovery work |
|---|---|
hrCannotRename | ESE could not complete the temporary-to-final rename used by a database or maintenance operation |
hrReadVerifyFailure | a database page failed physical verification while being read |
The ESE objects in play
| Diagnostic layer | database, log, checkpoint, or temporary files and the Windows storage/security boundary |
|---|---|
| Typical API surface | database open/attach, log recovery, temporary sort/maintenance, and file rename paths |
| Code-specific condition | ESE rejected access at an object or operation boundary under the current identity/mode |
| First corrective direction | identify the exact protected boundary and grant or request only the required access mode |
The underlying file, offset, access mode, and Win32 status are more useful than a generic application exception. Database and log files should not be manually fabricated, renamed, or deleted as a first response.
Safe recovery sequence
- Freeze the failing request context and record
0xC8000773, the Jet API name, and the current instance/session ownership. - Verify the code-specific precondition: record API, desired mode, database/table flags, effective token, ACLs, and conflicting exclusive ownership.
- Apply the targeted fix: identify the exact protected boundary and grant or request only the required access mode.
- Before retrying the operation, reconcile file identity, integrity evidence, and the supported recovery state.
Actions that can hide or worsen the problem
- Do not delete, rename, replace, or fabricate ESE files before preserving the complete set.
- Do not run destructive repair while a storage or access fault is still active.
Technical references
- ESE files.
- JET error codes
- ESE database anatomy
- ESE source repository
- Microsoft: JET_ERR enumeration
Looking for a different code? Search another status or error code.