#### Object HANDLEs

Asio provides Windows-specific classes that permit asynchronous wait operations to be performed on HANDLEs to kernel objects of the following types:

- Change notification
- Console input
- Event
- Memory resource notification
- Process
- Semaphore
- Thread
- Waitable timer

For example, to perform asynchronous operations on an event, the following object may be created:

    HANDLE handle = ::CreateEvent(...);
    windows::object_handle file(my_io_context, handle);

The `wait()` and `async_wait()` member functions may then be used to wait until the kernel object is signalled.

###### See Also

windows::object_handle.

###### Notes

Windows object `HANDLE`s are only available at compile time when targeting Windows. Programs may test for the macro `ASIO_HAS_WINDOWS_OBJECT_HANDLE` to determine whether they are supported.