If io is specified, it should never cancel any I/O operations other than the one specified by the parameter.
Better keep returning STATUS_NOT_IMPLEMENTED in this case?
i'm not entirely sure how it's used. for the synchronous case where it does cancel, passing a non-null io returns c0000225 (NOT_FOUND) instead of canceling. i don't see any difference in the asynchonous test case that already returns that
returning c0000225 for a non-null io would at least match windows, but feels like a fixme would still be needed since i'd still be ignoring it
the io didn't make any difference for implementing CancelSynchronousIo in kernelbase, which was what i was going for. and since it's more documented, CancelSynchonousIo is more likely to be called than NtCancelSynchronousIoFile directly
i can certainly add more tests to probe it, though, if preferred
thanks daniel