Описание операции ввода-вывода сети — Win32 apps
Twitter LinkedIn Facebook Адрес электронной почты
- Статья
- Чтение занимает 2 мин
На следующем рисунке показан процесс операции ввода-вывода сети в Windows.
Когда приложение вызывает функцию ввода-вывода файла для доступа к файлу на удаленном компьютере, происходят следующие события:
- Запрос ввода-вывода перехватывается сетевым перенаправителем, который также называется перенаправлением на локальном компьютере. Это показано на предыдущем рисунке сплошной стрелкой между приложением и перенаправителем клиента.
- Перенаправитель создает пакет данных, содержащий все сведения о запросе, и отправляет его на сервер, на котором находится файл. Это показано на предыдущем рисунке сплошной стрелкой между перенаправителем клиента и перенаправителем сервера.
- Перенаправитель на сервере получает пакет от клиента, проверяет подлинность доступа к файлу, требуемому запросом ввода-вывода, и при проверке подлинности выполняет запрос от имени клиента. В противном случае он возвращает код ошибки перенаправлению на клиенте. На рисунке выше показана изогнутая сплошная стрелка между перенаправителем сервера и файлом.
- При выполнении запроса перенаправитель на сервере отправляет все данные, полученные из запроса ввода-вывода, на клиент, а также уведомление об успешном выполнении. На предыдущем рисунке показана пунктирная стрелка между сервером и перенаправителем клиента.
- Перенаправитель на клиенте получает пакет с сервера и передает данные в пакете приложению вместе с уведомлением об успешном выполнении. На рисунке выше показана пунктирная стрелка между перенаправителем клиента и приложением.
Windows могут использовать различные сетевые протоколы для выполнения операций ввода-вывода сети, включая протокол Microsoft SMB и общие сведения о протоколе CIFS и NFS.
Раздел | Описание |
---|---|
Различия в локальных и сетевых ввода-выводах | Различия между локальным вводом-выводом и сетевым вводом-выводом в Windows. |
Сетевые перенаправления | Описывает функциональные возможности перенаправителя сети. |
Синхронные и асинхронные операции ввода-вывода — Win32 apps
- Статья
- Чтение занимает 5 мин
См. также примеры приложений, связанных с вводом-выводом.
Существует два типа синхронизации ввода-вывода: синхронный ввод-вывод и асинхронный ввод-вывод. Асинхронный ввод-вывод также называется перекрывающимся вводом-выводом.
В синхронном файле ввода-вывода поток запускает операцию ввода-вывода и немедленно переходит в состояние ожидания до завершения запроса ввода-вывода. Поток, выполняющий асинхронный ввод-вывод файлов, отправляет запрос ввода-вывода в ядро, вызывая соответствующую функцию. Если запрос принимается ядром, вызывающий поток продолжает обработку другого задания, пока ядро не сигнализирует потоку о завершении операции ввода-вывода. Затем он прерывает текущее задание и обрабатывает данные из операции ввода-вывода по мере необходимости.
Два типа синхронизации показаны на следующем рисунке.
В ситуациях, когда ожидается, что запрос ввода-вывода занимает большое количество времени, например обновление или резервное копирование большой базы данных или канал медленного взаимодействия, асинхронный ввод-вывод обычно является хорошим способом оптимизации эффективности обработки.
Если файл или устройство открывается для синхронного ввода-вывода (то есть FILE_FLAG_OVERLAPPED не указан), последующие вызовы функций, таких как WriteFile , могут блокировать выполнение вызывающего потока до тех пор, пока не произойдет одно из следующих событий:
- Операция ввода-вывода завершается (в этом примере выполняется запись данных).
- Ошибка ввода-вывода. (Например, канал закрывается с другого конца.)
- В самом вызове произошла ошибка (например, один или несколько параметров недопустимы).
- Другой поток в процессе вызывает функцию CancelSynchronousIo с помощью дескриптора потока заблокированного потока, который завершает операции ввода-вывода для этого потока, завершая операцию ввода-вывода.
- Заблокированный поток завершается системой; Например, сам процесс завершается или другой поток вызывает функцию TerminateThread с помощью дескриптора заблокированного потока. (Как правило, это считается последним средством и не является хорошим дизайном приложений.)
В некоторых случаях эта задержка может быть неприемлемой для проектирования и назначения приложения, поэтому конструкторы приложений должны рассмотреть возможность использования асинхронного ввода-вывода с соответствующими объектами синхронизации потоков, такими как порты завершения ввода-вывода. Дополнительные сведения о синхронизации потоков см. в разделе «Сведения о синхронизации».
Процесс открывает файл для асинхронного ввода-вывода в вызове CreateFile , указав флаг FILE_FLAG_OVERLAPPED в параметре dwFlagsAndAttributes . Если FILE_FLAG_OVERLAPPED не указан, файл открывается для синхронных операций ввода-вывода. При открытии файла для асинхронного ввода-вывода указатель на структуру OVERLAPPED передается в вызов ReadFile и WriteFile. При выполнении синхронных операций ввода-вывода эта структура не требуется в вызовах ReadFile и WriteFile.
Примечание
Если файл или устройство открывается для асинхронного ввода-вывода, последующие вызовы таких функций, как WriteFile , с помощью которых обычно возвращаются немедленно, но также могут работать синхронно в отношении заблокированного выполнения. Для получения дополнительной информации см. https://support.microsoft.com/kb/156932.
Хотя CreateFile — это наиболее распространенная функция для открытия файлов, томов дисков, анонимных каналов и других аналогичных устройств, операции ввода-вывода также можно выполнять с помощью дескриптора типа из других системных объектов, таких как сокет или прием функций.
Дескриптора для объектов каталога получаются путем вызова функции CreateFile с атрибутом FILE_FLAG_BACKUP_SEMANTICS
После открытия объекта файла для асинхронного ввода-вывода структура OVERLAPPED должна быть правильно создана, инициализирована и передана в каждый вызов функций, таких как ReadFile и WriteFile. При использовании структуры OVERLAPPED в асинхронных операциях чтения и записи учитывайте следующее:
- Не отменяйте выделение или изменение структуры OVERLAPPED или буфера данных до завершения всех асинхронных операций ввода-вывода в объекте файла.
- Если вы объявляете указатель на структуру OVERLAPPED как локальную переменную, не закрывайте локальную функцию до завершения всех асинхронных операций ввода-вывода в объект файла. Если локальная функция завершается преждевременно, структура OVERLAPPED выйдет из области, и она будет недоступна для любых функций ReadFile или WriteFile , с которыми она сталкивается за пределами этой функции.
Вы также можете создать событие и поместить дескриптор в структуру OVERLAPPED ; Затем функции ожидания можно использовать для ожидания завершения операции ввода-вывода, ожидая дескриптора события.
Как уже говорилось, при работе с асинхронным дескриптором приложения должны использовать осторожность при определении времени освобождения ресурсов, связанных с указанной операцией ввода-вывода для этого дескриптора. Если дескриптор освобождается преждевременно, ReadFile или WriteFile может неправильно сообщить, что операция ввода-вывода завершена. Кроме того, функция WriteFile иногда возвращает
Система не поддерживает указатель на асинхронные дескрипторы файлов и устройств, поддерживающих указатели файлов (т. е. поиск устройств), поэтому положение файла должно передаваться функциям чтения и записи в связанных элементах данных смещения структуры OVERLAPPED . Дополнительные сведения см. в разделе WriteFile и ReadFile.
Положение указателя файла для синхронного дескриптора поддерживается системой по мере чтения или записи данных, а также может быть обновлено с помощью функции SetFilePointer или SetFilePointerEx .
Приложение также может ждать дескриптора файла, чтобы синхронизировать завершение операции ввода-вывода, но это требует крайней осторожности. При каждом запуске операции ввода-вывода операционная система устанавливает дескриптор файла в незначаемое состояние. При каждом завершении операции ввода-вывода операционная система устанавливает дескриптор файла в сигнальное состояние. Таким образом, если приложение запускает две операции ввода-вывода и ожидает дескриптора файла, невозможно определить, какая операция завершается после установки дескриптора в сигнальное состояние. Если приложение должно выполнять несколько асинхронных операций ввода-вывода в одном файле, оно должно ожидать дескриптора событий в конкретной структуре OVERLAPPED для каждой операции ввода-вывода, а не на общем дескрипторове файлов.
Чтобы отменить все ожидающие асинхронные операции ввода-вывода, используйте один из следующих способов:
- CancelIo — эта функция отменяет только операции, выданные вызывающим потоком для указанного дескриптора файла.
- CancelIoEx — эта функция отменяет все операции, выданные потоками для указанного дескриптора файла.
Используйте CancelSynchronousIo для отмены ожидающих синхронных операций ввода-вывода.
Функции ReadFileEx и WriteFileEx позволяют приложению указать подпрограмму для выполнения (см. fileIOCompletionRoutine) после завершения асинхронного запроса ввода-вывода.
404: Страница не найдена
Страница, которую вы пытались открыть по этому адресу, похоже, не существует. Обычно это результат плохой или устаревшей ссылки. Мы приносим свои извинения за доставленные неудобства.
Что я могу сделать сейчас?
Если вы впервые посещаете TechTarget, добро пожаловать! Извините за обстоятельства, при которых мы встречаемся. Вот куда вы можете пойти отсюда:
Поиск- Пожалуйста, свяжитесь с нами, чтобы сообщить, что эта страница отсутствует, или используйте поле выше, чтобы продолжить поиск
- Наша страница «О нас» содержит дополнительную информацию о сайте, на котором вы находитесь, WhatIs.com.
- Посетите нашу домашнюю страницу и просмотрите наши технические темы
Просмотр по категории
Сеть
- DHCP (протокол динамической конфигурации хоста)
DHCP (Dynamic Host Configuration Protocol) — это протокол управления сетью, используемый для динамического назначения IP-адреса любому …
- облачная сеть радиодоступа (C-RAN)
Облачная сеть радиодоступа (C-RAN) — это централизованная архитектура на основе облачных вычислений для сетей радиодоступа.
- потоковая телеметрия сети
Потоковая сетевая телеметрия — это служба сбора данных в режиме реального времени, в которой сетевые устройства, такие как маршрутизаторы, коммутаторы и . ..
Безопасность
- кража учетных данных
Кража учетных данных — это тип киберпреступления, связанный с кражей удостоверения личности жертвы.
- суверенная идентичность
Самостоятельная суверенная идентификация (SSI) — это модель управления цифровой идентификацией, в которой отдельные лица или предприятия владеют единолично …
- Сертифицированный специалист по безопасности информационных систем (CISSP)
Сертифицированный специалист по безопасности информационных систем
(CISSP) — это сертификат информационной безопасности, разработанный …
ИТ-директор
- рассказывание историй о данных
Рассказывание историй о данных — это процесс перевода анализа данных в понятные термины с целью повлиять на деловое решение…
- оншорный аутсорсинг (внутренний аутсорсинг)
Оншорный аутсорсинг, также известный как внутренний аутсорсинг, представляет собой получение услуг от кого-то вне компании, но в пределах . ..
- FMEA (анализ видов и последствий отказов)
FMEA (анализ видов и последствий отказов) представляет собой пошаговый подход к сбору сведений о возможных точках отказа в …
HRSoftware
- самообслуживание сотрудников (ESS)
Самообслуживание сотрудников (ESS) — это широко используемая технология управления персоналом, которая позволяет сотрудникам выполнять множество связанных с работой …
- платформа обучения (LXP)
Платформа обучения (LXP) — это управляемая искусственным интеллектом платформа взаимного обучения, предоставляемая с использованием программного обеспечения как услуги (…
- Поиск талантов
Привлечение талантов — это стратегический процесс, который работодатели используют для анализа своих долгосрочных потребностей в талантах в контексте бизнеса …
Обслуживание клиентов
- виртуальный помощник (помощник ИИ)
Виртуальный помощник, также называемый помощником ИИ или цифровым помощником, представляет собой прикладную программу, которая понимает естественный язык . ..
- жизненный цикл клиента
В управлении взаимоотношениями с клиентами (CRM) жизненный цикл клиента — это термин, используемый для описания последовательности шагов, которые проходит клиент…
- интерактивный голосовой ответ (IVR)
Интерактивный голосовой ответ (IVR) — это автоматизированная система телефонии, которая взаимодействует с вызывающими абонентами, собирает информацию и маршрутизирует …
Определение ввода/вывода | ПКМаг
(1) См. информационные операции.
(2) ( I ввод/ O вывод) Передача данных между процессором компьютера и периферийным устройством. Каждая передача состоит из операций ввода и вывода; отсюда и термин «ввод-вывод». Передача либо выводится из ЦП и вводится в периферийное устройство, либо выводится из периферийного устройства и вводится в ЦП. См. ввод/вывод ПК.
Реклама
Истории PCMag, которые вам понравятся
{X-html заменен}
Выбор редакции
ЭТО ОПРЕДЕЛЕНИЕ ПРЕДНАЗНАЧЕНО ТОЛЬКО ДЛЯ ЛИЧНОГО ИСПОЛЬЗОВАНИЯ. Любое другое воспроизведение требует разрешения.Copyright © 1981-2023. The Computer Language(Opens in a new window) Co Inc. Все права защищены.
Информационные бюллетени PCMag
Информационные бюллетени PCMag
Наши лучшие истории в папке «Входящие»
Подпишитесь на PCMag
- Фейсбук (Открывается в новом окне)
- Твиттер (Откроется в новом окне)
- Флипборд (Открывается в новом окне)
- Гугл (откроется в новом окне)
- Инстаграм (откроется в новом окне)
- Pinterest (Открывается в новом окне)
PCMag.com является ведущим авторитетом в области технологий, предоставляющим независимые лабораторные обзоры новейших продуктов и услуг. Наш экспертный отраслевой анализ и практические решения помогут вам принимать более обоснованные решения о покупке и получать больше от технологий.
Как мы тестируем Редакционные принципы
- (Открывается в новом окне) Логотип Зиффмедиа
- (Открывается в новом окне) Логотип Аскмен
- (Открывается в новом окне) Логотип Экстримтек
- (Открывается в новом окне) Логотип ИНГ
- (Открывается в новом окне) Логотип Mashable
- (Открывается в новом окне) Предлагает логотип
- (Открывается в новом окне) Логотип RetailMeNot
- (Открывается в новом окне) Логотип Speedtest
- (Открывается в новом окне) Логотип Спайсворкс
(Открывается в новом окне)
PCMag поддерживает Group Black и ее миссию по увеличению разнообразия голосов в СМИ и прав собственности на СМИ.