Windows error 0x00000252, 594

Detailed Error Information


MessageThe driver %hs failed to complete a cancelled I/O request in the allotted time.
Declared inwinerror.h

This appears to be a raw Win32 error. More information may be available in error 0x80070252.

HRESULT analysis[2]

This is probably not the correct interpretation of this error. The Win32 error above is more likely to indicate the actual problem.

This code indicates success, rather than an error. This may not be the correct interpretation of this code, or possibly the program is handling errors incorrectly.

Reserved (R)false
Reserved (X)false
FacilityCode0 (0x000)
DescriptionThe default facility code.[2][1]
Error Code594 (0x0252)

Possible solutions


Is PEVerify warning about duplicate methods wrong here?


Both methods share the same method signature and that is simply not allowed.

For the CLR, a method signature consists of the method name, generic arity, formal parameter arity, formal parameter types and kinds, and return type.

Definition of a method signature

Serge Lidin states in .Net IL Assembler, chapter 10 under Method Table Validity Rules:

No duplicate records—attributed to the same TypeDef and having the same name and signature—should exist unless the accessibility flag is privatescope.

of course you can find this rule in the ECMA-335 specifications, in partition II.22.1:

Unique Rows: No table shall contain duplicate rows, where “duplicate” is defined in terms of its key column, or combination of columns.

answered on Stack Overflow Feb 2, 2016 by thehennyy • edited May 23, 2017 by Community

32-bit pointer overflow in 64-bit gcc code - fails in compile


I just ran into the same problem with GNU Fortran (GCC) 5.1.0 in a Mac running 10.11.5 but the solution offered by the OP did not work for me.

However, I did find a solution: after systematically pruning my rather pedestrian legacy code, I found that every array has to be explicitly filled with something. You can't start filling it within your code. I know it sounds silly, but once I initialized every "real" array (32 bit, it is legacy code) with 0.0 before I did any I/O or other work, it linked without complaint.

And, yes, as with the OP, my code worked until I changed the size of an array.

The reason why this worked may be in the contents of this bug report: but I am not good enough to tell you how to come up with a better workaround. My only guess is that initializing every array at the beginning favors the GOT instead of the RIP. (When will this be fixed? I just don't know how to push this up the line and the bug report is dated 2014-11-09)

answered on Stack Overflow Jun 3, 2016 by HackerPhysicist


Leave a comment

(plain text only)


  1. winerror.h from Windows SDK 10.0.14393.0

User contributions licensed under CC BY-SA 3.0