2025-11-28 00:35:46 +09:00

46 lines
1.7 KiB
Plaintext

A new API, CancelSynchronousIo, was added in the Windows Vista timeframe that
allows a user to attempt to cancel an outstanding synchronous operation on
a targetted thread.
This sample demonstrates safe usage of this API to cancel a call to
CreateFile that is made 'asynchronous' by posting it to another thread.
Files
=====
README.TXT This file.
IoCancellation.h Header file for Io Cancellation routines.
IoCancellation.c Source file for Io Cancellation routines.
AsyncCreateFile.c Source file for usage of cancellation for CreateFile.
AsyncCreate.sln Visual Studio 2008 solution file.
AsyncCreate.vcproj Visual Studio 2008 project file.
How to Build
============
1) Open the project in Visual Studio 2008 and build using the IDE.
2) Open a Visual Studio command prompt and type "vcbuild" in the directory
containing the sources.
3) Open an SDK command prommpt and type "msbuild" in the directory containing
the sources.
NB: You may need to copy the sources to a new directory as the default
install directory is write-protected.
How to Run
==========
AsyncCreateFile <targetFile> <timeout> <returnOnTimeout>
targetfile Path to open; this can be a local path or a network
path (eg. \\machine\share\file).
timeout Time to wait in millseconds before cancelling the open.
returnOnTimeout A non-zero value indicates that if the operation times out,
the program should immediately return. Otherwise it will
wait for the create request to complete (after attempting
cancellation) and output the final status of the operation.