BOOL GetOverlappedResult(
HANDLE hFile, // идентификатор файла
LPOVERLAPPED IpOverlapped, // адрес структуры
OVERLAPPED LPDWORD IpNuraberOfBytesTransferred, // адрес
// счетчика байтов
BOOL bWait); // флаг ожидания
Через параметры hFile и IpOverlapped передаются соответственно идентификатор файла, для которого выполнялась асинхронная операция, и адрес структуры OVERLAPPED, подготовленной перед выполнением операции.
В переменную, адрес которой передается функции через параметр IpNumberOfBytesTransferred, записывается количество действительно прочитанных или записанных байт данных.
Параметр bWait может принимать значения TRUE или FALSE. В первом случае функция GetOverlappedResult будет дожидаться завершения выполнения операции (вот вам еще одно средство синхронизации). Если же значение параметра bWait равно FALSE, то, если при вызове функции операция еще не завершилась, функция GetOverlappedResult вернет значение FALSE (признак ошибки).
При нормальном завершении (без ошибок) функция GetOverlappedResult возвращает значение TRUE.
Бірінші процесс картаны жасады. Бірінші процеспен деректер алмасуды жүзеге асыратын екінші процесс келесі прототипі бар OpenFileMapping функциясын қолдана отырып дисплейді ашуы керек:
HANDLE OpenFileMapping(
DWORD dwDesiredAccess, // режим доступа
BOOL bInheritHandle, // флаг наследования
LPCTSTR lpName ); // адрес имени отображения файла
Mailslot арнасы CreateMailslot функциясы серверлік процесс арқылы жасалады
Createmailslot функциясының прототипі:
HANDLE CreateMailslot(
LPCTSTR lpName, // адрес имени канала Mailslot
DWORD nMaxMsgSize, // макс. Размер сообщения
DWORD lReadTimeout, // время ожидания для чтения
LPSECURITY_ATTRIBUTES lpSecurityAttributes); //адрес структуры защиты
Достарыңызбен бөлісу: |