Création d’un mailslot
Les mailslots sont pris en charge par trois fonctions spécialisées : CreateMailslot, GetMailslotInfoet SetMailslotInfo. Ces fonctions sont utilisées par le serveur mailslot.
L’exemple de code suivant utilise la fonction CreateMailslot pour récupérer le descripteur d’un mailslot nommé « Sample _ mailslot ». L’exemple de code écrit dans un mailslot montre comment l’application cliente peut écrire sur ce 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);
}
Pour créer un mailslot pouvant être hérité par les processus enfants, une application doit modifier la structure des _ attributs de sécurité transmise en tant que dernier paramètre de CreateMailslot. Pour ce faire, l’application définit le membre bInheritHandle de cette structure sur true (le paramètre par défaut est false).