Знакомьтесь:
0: kd> !error c0000006
Error code: (NTSTATUS) 0xc0000006 (3221225478) - The instruction at "0x%08lx" referenced memory at "0x%08lx". The required data was not placed into memory because of an I/O error status of "0x%08lx".
Вот и комрад Larry Osterman пишет в своей статье следующие вещи:
For Memory Mapped files (and RPC), the system has to have a way of communicating error status to the caller. If you attempt to read from a memory mapped file and an error occurs when reading the file, there's no way of "failing" a read - it's just a MOV CPU instruction, and it has no failure semantics. As a result, the only way that the system can "fail" the operation is to abort the instruction with some form of access violation.
З.Ы. Еще один довод в пользу /EHa, ибо, в общем случае, высокоуровневый код может и не знать, откуда взялась память, с которой он работает.
No comments:
Post a Comment