Основы программирования в Win32API. Марапулец Ю.В. - 34 стр.

UptoLike

Составители: 

Library – библиотека управления динамическим обменом данных) или канала:
BOOL DuplicateHandle
(HANDLE hSourceProcess, // процесс, которому принадлежит
// исходный объект
HANDLE hSource, // дескриптор исходного объекта
HANDLE hTargetProcess, // процесс, который хочет создать
// копию дескриптора
LPHANDLE lphTarget, переменная для записи копии дескриптора
DWORD fdwAccess, // запрашиваемые привилегии доступа
BOOL bInherit, может ли наследоваться копия дескриптора?
DWORD fdwOptions, // дополнительные операции, например
// закрытие исходного дескриптора);
HANDLE OpenMutex
(DWORD fdwAccess, //запрашиваемые привилегии доступа
BOOL binherit, // TRUE – дочерний процесс может
// наследовать этот дескриптор
LPTSTR lpszName, // имя исключающего семафора);
HANDLE OpenSemaphore
(DWORD fdwAccess, // запрашиваемые привилегии доступа
BOOL bInherit, //TRUE – дочерний процесс может
// наследовать этот дескриптор
LPTSTR lpszName, // имя семафора);
HANDLE OpenEvent
(DWORD fdwAccess, // запрашиваемые привилегии доступа
BOOL bInherit, // TRUE – дочерний процесс может
// наследовать этот дескриптор
LPTSTR lpszName, // имя события);…
Используемый в этом примере тип данных LPTSTR это обобщенный
текстовый тип, который компилируется по-разному в зависимости от того, ка-
кой стандарт, Unicode или ASCII, поддерживается приложением.
Семафоры, исключающие семафоры и объекты событий будут сохранять-
ся в памяти до тех пор, пока не завершатся все использующие их процессы или
пока с помощью функции CloseHandle() не будут закрыты все дескрипторы
соответствующего объекта:
BOOLCloseHandle(hObject);…
2.4.5. Критический раздел
Критический раздел представляет собой объект, выполняющий те же функ-
ции, что и исключающий семафор, но в отличие от последнего критический раз-
дел не может наследоваться. Оба объекта доступны только для одного процесса.
Преимущество критических разделов перед исключающими семафорами состоит
в том, что они проще в управлении и гораздо быстрее работают [2].
Терминология, принятая для функций, которые используются при работе
34
Library – библиотека управления динамическим обменом данных) или канала:
BOOL DuplicateHandle
    (HANDLE hSourceProcess,          // процесс, которому принадлежит
                                  // исходный объект
    HANDLE hSource,               // дескриптор исходного объекта
    HANDLE hTargetProcess,         // процесс, который хочет создать
                                  // копию дескриптора
    LPHANDLE lphTarget,        переменная для записи копии дескриптора
    DWORD fdwAccess,            // запрашиваемые привилегии доступа
    BOOL bInherit,           может ли наследоваться копия дескриптора?
    DWORD fdwOptions,        // дополнительные операции, например
                                  // закрытие исходного дескриптора);
HANDLE OpenMutex
   (DWORD fdwAccess,                   //запрашиваемые привилегии доступа
   BOOL binherit,                // TRUE – дочерний процесс может
                                  // наследовать этот дескриптор
   LPTSTR lpszName,          // имя исключающего семафора);
HANDLE OpenSemaphore
   (DWORD fdwAccess,        // запрашиваемые привилегии доступа
   BOOL bInherit,         //TRUE – дочерний процесс может
                         // наследовать этот дескриптор
   LPTSTR lpszName, // имя семафора);
HANDLE OpenEvent
   (DWORD fdwAccess,      // запрашиваемые привилегии доступа
   BOOL bInherit,        // TRUE – дочерний процесс может
                         // наследовать этот дескриптор
   LPTSTR lpszName,    // имя события);…
     Используемый в этом примере тип данных LPTSTR – это обобщенный
текстовый тип, который компилируется по-разному в зависимости от того, ка-
кой стандарт, Unicode или ASCII, поддерживается приложением.
     Семафоры, исключающие семафоры и объекты событий будут сохранять-
ся в памяти до тех пор, пока не завершатся все использующие их процессы или
пока с помощью функции CloseHandle() не будут закрыты все дескрипторы
соответствующего объекта:
BOOLCloseHandle(hObject);…
                          2.4.5. Критический раздел

     Критический раздел представляет собой объект, выполняющий те же функ-
ции, что и исключающий семафор, но в отличие от последнего критический раз-
дел не может наследоваться. Оба объекта доступны только для одного процесса.
Преимущество критических разделов перед исключающими семафорами состоит
в том, что они проще в управлении и гораздо быстрее работают [2].
     Терминология, принятая для функций, которые используются при работе

                                    34