На главную

On-line справка по Win32 API

Написать письмо
БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО!
Список всех статей A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z | Скачать Вниз

CreateMailslot



The CreateMailslot function creates a mailslot with the specified name and returns a handle that a mailslot server can use to perform operations on the mailslot. The mailslot is local to the computer that creates it. An error occurs if a mailslot with the specified name already exists.

HANDLE CreateMailslot(

LPCTSTR lpName, // pointer to string for mailslot name
DWORD nMaxMessageSize, // maximum message size
DWORD lReadTimeout, // milliseconds before read time-out
LPSECURITY_ATTRIBUTES lpSecurityAttributes // pointer to security structure
);


Parameters

lpName

Points to a null-terminated string specifying the name of the mailslot. This name must have the following form:



\\.\mailslot\[path]name

The name field must be unique. The name may include multiple levels of pseudodirectories separated by backslashes. For example, both \\.\mailslot\example_mailslot_name and \\.\mailslot\abc\def\ghi are valid names.

nMaxMessageSize

Specifies the maximum size, in bytes, of a single message that can be written to the mailslots. To specify that the message can be of any size, set this value to zero.

lReadTimeout

Specifies the amount of time, in milliseconds, a read operation can wait for a message to be written to the mailslot before a time-out occurs. The following values have special meanings:

Value Meaning
0 Returns immediately if no message is present. (The system does not treat an immediate return as an error.)
MAILSLOT_WAIT_FOREVER Waits forever for a message.


This time-out value applies to all subsequent read operations and all inherited mailslot handles.

lpSecurityAttributes

Pointer to a SECURITY_ATTRIBUTES structure that determines whether the returned handle can be inherited by child processes. If lpSecurityAttributes is NULL, the handle cannot be inherited.

Windows NT: The lpSecurityDescriptor member of the structure specifies a security descriptor for the new mailslot. If lpSecurityAttributes is NULL, the mailslot gets a default security descriptor.
Windows 95: The lpSecurityDescriptor member of the structure is ignored.



Return Values

If the function succeeds, the return value is a handle to the mailslot, for use in server mailslot operations.
If the function fails, the return value is INVALID_HANDLE_VALUE. To get extended error information, call GetLastError.

Remarks

The mailslot exists until one of the following conditions is true:

· The last (possibly inherited or duplicated) handle to it is closed using the CloseHandle function.
· The process owning the last (possibly inherited or duplicated) handle exits.



Both Windows NT and Windows 95 use the second method to destroy mailslots.

To write a message to a mailslot, a process uses the CreateFile function, specifying the mailslot name by using one of the following formats:

Format Usage
\\.\mailslot\name Retrieves a client handle to a local mailslot.
\\computername\mailslot\name Retrieves a client handle to a remote mailslot.
\\domainname\mailslot\name Retrieves a client handle to all mailslots with the specified name in the specified domain.
\\*\mailslot\name Retrieves a client handle to all mailslots with the specified name in the system's primary domain.


If CreateFile specifies a domain or uses the asterisk format to specify the system's primary domain, the application cannot write more than 400 bytes at a time to the mailslot. If the application attempts to do so, the WriteFile function fails and GetLastError returns ERROR_BAD_NETPATH.
An application must specify the FILE_SHARE_READ flag when using CreateFile to retrieve a client handle to a mailslot.

See Also

CloseHandle, CreateFile, GetMailslotInfo, SECURITY_ATTRIBUTES, SetMailslotInfo, WriteFile


Пригласи друзей и счет твоего мобильника всегда будет положительным!
Предыдущая статья
 
Сайт Народ.Ру Интернет
Следующая статья
Пригласи друзей и счет твоего мобильника всегда будет положительным!

CreateMailslot



Функция CreateMailslot создает mailslot с определенным именем и возвращает ручку, которую сервер mailslot может использовать, чтобы выполнять операции в mailslot. mailslot Локальное в компьютере, который создает это. Ошибка происходит если mailslot с определенным именем уже существует.

РУЧКА CreateMailslot(

LPCTSTR lpName, // УКАЗАТЕЛЬ, чтобы нанизываться для mailslot имени DWORD nMaxMessageSize, // максимального размера сообщения DWORD lReadTimeout, // миллисекунд перед прочитавшее указатель задержки LPSECURITY_ATTRIBUTES lpSecurityAttributes // в структуру безопасности
);


Параметры

lpName

Точки на недействительный расторгнутую строку, определяющие имя mailslot. Это имя должно иметь следующее формы:



\\.\mailslot\[path]name

Область имени должна быть уникальной. Имя может включить многочисленные уровни pseudodirectories разделенные обратной косой чертой. Например, как \\.\mailslot\example_mailslot_name так и \\.\mailslot\abc\def\ghi будут в силе имена.

nMaxMessageSize

Определяет максимальный размер, в байтах, единственного сообщения, который может быть записан в mailslots. Для того, чтобы определять, что сообщение может быть любого размера, установите эту величину в нуль.

lReadTimeout

Определяет время, в течение миллисекунд, операция чтения может подождать сообщение, которое нужно записывать в mailslot прежде, чем задержка произойдет. Следующие величины имеют специальные значения:

Значение Величины
0 Возврат немедленно если никакое сообщение не присутствует. ( Система не рассматривает безотлагательный возврат как ошибку.)
MAILSLOT_WAIT_FOREVER Ожидается навсегда для сообщения.


Эта величина задержки относится ко всем последующим операциям чтения и все унаследовавшую mailslot ручки.

lpSecurityAttributes

Указатель в структуру SECURITY_ATTRIBUTES, которая определяет может возвращанная ручка быть унаследована процессами ребенка. Если lpSecurityAttributes НЕДЕЙСТВИТЕЛЕН, ручка не может быть унаследована.

Windows NT: элемент lpSecurityDescriptor структуры определяет дескриптор безопасности для нового mailslot. Если lpSecurityAttributes НЕДЕЙСТВИТЕЛЕН, mailslot получает по умолчанию дескриптор безопасности.
Windows 95: элемент lpSecurityDescriptor структуры проигнорирован.



Обратные Величины

Если функция добивается успеха, обратная величина является ручкой в mailslot, для использования в сервере mailslot операции.
Если функция терпит неудачу, обратная величина - INVALID_HANDLE_VALUE. Для того, чтобы расширять информацию ошибки, вызовите GetLastError.

Замечания

mailslot Существует пока одно из следующих условий не будет истиной:

Последняя ручка (возможно унаследованная или продублированная), чтобы закрыто используя функцию CloseHandle.
Процесс, обладающий последней ручкой (возможно унаследованная или продублированная) выходы.



Как Windows NT так и Windows 95 использует второй метод, чтобы уничтожать mailslots.

Для того, чтобы записывать сообщение в mailslot, процесс использует функцию CreateFile, определяя имя mailslot используя одно из следующего форматов:

Использование Формата
\\.\mailslot\name Извлекает ручку клиента на локальный mailslot.
\\computername\mailslot\name Извлекает ручку клиента на дистанционный mailslot.
\\domainname\mailslot\name Извлекает ручку клиента на все mailslots с определенным именем в определенной области.
\\*\mailslot\name Извлекает ручку клиента на все mailslots с определенным именем в системной первичной области.


Если CreateFile определяет область или использует формат звездочки, чтобы определять системную первичную область, приложение не может записать более, чем 400 байтов от до mailslot. Если приложение пытается делать так, функцией WriteFile терпит неудачу и возврат GetLastError ERROR_BAD_NETPATH.
Приложение должно определить флаг FILE_SHARE_READ при использовании CreateFile, чтобы извлекать ручку клиента в mailslot.

Смотри Также

CloseHandle, CreateFile, GetMailslotInfo, SECURITY_ATTRIBUTES, SetMailslotInfo, WriteFile


Вверх Version 1.3, Oct 26 2010 © 2007, 2010, mrhx Вверх
 mrhx software  Русский перевод OpenGL  Русский перевод Win32 API
 
Используются технологии uCoz