Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Mailslots поддерживается тремя специализированными функциями: CreateMailslot, GetMailslotInfoи SetMailslotInfo. Эти функции используются сервером mailslot.
В следующем примере кода используется функция CreateMailslot для получения дескриптора на mailslot с именем "sample_mailslot". Пример кода в разделе «Запись в mailslot» показывает, как клиентское приложение может записывать в этот mailslot.
#include <windows.h>
#include <stdio.h>
HANDLE hSlot;
LPCTSTR SlotName = TEXT("\\\\.\\mailslot\\sample_mailslot");
BOOL WINAPI MakeSlot(LPCTSTR lpszSlotName)
{
hSlot = CreateMailslot(lpszSlotName,
0, // no maximum message size
MAILSLOT_WAIT_FOREVER, // no time-out for operations
(LPSECURITY_ATTRIBUTES) NULL); // default security
if (hSlot == INVALID_HANDLE_VALUE)
{
printf("CreateMailslot failed with %d\n", GetLastError());
return FALSE;
}
else printf("Mailslot created successfully.\n");
return TRUE;
}
void main()
{
MakeSlot(SlotName);
}
Чтобы создать mailslot, который можно наследовать дочерними процессами, приложение должно изменить структуру SECURITY_ATTRIBUTES, переданную в качестве последнего параметра CreateMailslot. Для этого приложение задает элемент bInheritHandle этой структуры для TRUE (параметр по умолчанию FALSE).