Повышаю. Asio предоставляет Классы Windows, которые позволяют выполнять асинхронные операции чтения и записи на HANDLE, которые относятся к обычным файлам.
Например, для выполнения асинхронных операций на файле может быть создан следующий объект:
HANDLE handle = ::CreateFile(...);
windows::random_access_handle file(my_io_service, handle);
Данные могут быть прочитаны или записаны на ручку с использованием одной из функций<read_some_at()>,<async_read_some_at()>,<write_some_at()>или<async_write_some_at()>. Однако, как и эквивалентные функции (<read_some()>и т.д.) в потоках, эти функции требуются только для передачи одного или нескольких байтов в одной операции. Следовательно, свободные функции называютсяread_at().,async_read_at(),write_at()иasync_write_at()были созданы для многократного вызова соответствующей функции<*_some_at()>до передачи всех данных.
windows::random_access_handle,windows::basic_random_access_handle,windows::random_access_handle_service.
Случайный доступ к Windows<HANDLE>доступен только во время компиляции при нацеливании на Windows и только тогда, когда используется сервер порта завершения ввода/вывода (который является по умолчанию). Программа может тестировать макрос<BOOST_ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE>, чтобы определить, поддерживаются ли они.