ned Productions Consulting


Technology musings by Niall Douglas
ned Productions Consulting
(an expert advice and services company based in Ireland)


Monday 9th September 2013 3.51pm

Link shared: https://ci.nedprod.com/job/Boost.AFIO%20Test%20WinXP%20VS2010/95/testReport/Boost.AFIO/libs_afio_test_tests_async_io_lstat_works/async_io_lstat_works/

Pushed directory enumeration to AFIO last night, and the CI reports my direct NT kernel implementation of lstat() doesn't work on Windows XP due to this wonderful demonstration of my excellent error handling https://ci.nedprod.com/job/Boost.AFIO%20Test%20WinXP%20VS2010/95/testReport/Boost.AFIO/libs_afio_test_tests_async_io_lstat_works/async_io_lstat_works/.

As you can see in the CI's test failure report, the error report says "The specified information class is not a valid information class for the specified object" at line 788 of my lstat() implementation which corresponds to a query for FILE_FS_SECTOR_SIZE_INFORMATION which it turns out, correctly, is a Windows 7 or later only API providing support for 4Kb sector sized storage (http://msdn.microsoft.com/en-us/library/windows/desktop/hh848035(v=vs.85).aspx).

This raises a question: what should I do instead on Windows XP? As far as I know XP assumes a 512 byte sector size throughout, so I guess I'll just hardcode that value if the above API fetch fails … other than that minor gotcha, the new feature is looking solid.

Mostly just documentation, oodles of it, to go now before we're ready for peer review.