Freigeben über


Erstellen eines Mailslots

Mailslots werden von drei spezialisierten Funktionen unterstützt: CreateMailslot, GetMailslotInfo und SetMailslotInfo. Diese Funktionen werden vom maillot-Server verwendet.

Im folgenden Codebeispiel wird die CreateMailslot-Funktion verwendet, um das Handle für ein Maillot mit dem Namen "sample_mailslot" abzurufen. Das Codebeispiel in Schreiben in ein Mailslot zeigt, wie die Clientanwendung in dieses Maillot schreiben kann.

#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);
}

Um ein Maillot zu erstellen, das von untergeordneten Prozessen geerbt werden kann, sollte eine Anwendung die SECURITY_ATTRIBUTES Struktur ändern, die als letzter Parameter von CreateMailslot übergeben wird. Dazu legt die Anwendung den bInheritHandle-Member dieser Struktur auf TRUE fest (die Standardeinstellung ist FALSE).