Pamiętacie czasy, gdy pliki w sieci udostępniał OS/2 LAN Manager albo gdy serwer usług terminalowych nazywał się Hydra? To było dawno temu, ale jako że i jedno i drugie było dziełem Microsoftu, do dzisiaj można znaleźć w systemie Windows pewne ciekawe pozostałości. Takim żywym reliktem czasów sprzed prawie 20 lat są obiekty mailslot. Mailslot to jednokierunkowa metoda przesyłania komunikatów pomiędzy systemami. Nie jest to jednak żaden specjalnie głęboko schowany mechanizm i każdy, kto zechce go użyć – może spróbować. Mailslot nie ma wprawdzie żadnej gwarancji doręczenia komunikatu, ale przecież nie zawsze jest to niezbędne. Z cech najlepiej świadczących o wieku i mocno już archaicznej technologii wymienić można również ograniczenie długości komunikatu do 424 znaków.

Mailslot ma zawsze dwa końce: nasłuchujący (serwer) i nadający (klient). Aby utworzyć koniec nasłuchujący należy posłużyć się nazwą w formacie "\\.\Mailslot\jakastamnazwa"  Aby coś do takiego nasłuchującego serwera posłać, należy użyć nazwy "\\nazwaserwera\Mailslot\jakastamnazwa"
Co ciekawe, nadawanie jest możliwe w formie broadcastów do wielu komputerów – serwerów mailslot równocześnie. Oczywiście na każdym nasłuchującym serwerze, mailslot musi się nazywać tak samo. Aby nadawać do swojej domeny, należy użyć adresu "\\*\Mailslot\jakastamnazwa" a do dowolnej innej: "\\nazwadomeny\mailslot\jakastamnazwa" Wygląda znajomo? Kojarzy się z NET SEND? I bardzo słusznie. NET SEND i usługa Messenger były takimi właśnie klientami i serwerami mailslot. Były, bo warto pamiętać, że począwszy od Windows Vista, zostały usunięte z systemu.

Ponieważ mechanizmy mailslot odchodzą powoli w zapomnienie, postanowiłem poszukać ich śladów. W szybkim przeglądzie znalazłem dwa:

  • \\.\Mailslot\HydraLsServer – pamiętacie co to jest Hydra? Takim kanałem mailslot posługuje się serwer licencjonujący dla usług terminalowych.
  • \\.\Mailslot\tapi\tpXXXX – mailslot używany przez TAPI (Telephony Application Programming Interface)

Możliwość użycia komunikacji przez mailslot zapewniona jest przez sterownik msfs.sys znajdujący się w każdym systemie Windows. A co, jeżeli ktoś chce się pobawić taką komunikacją a nie jest programistą? Otóż może. Służy do tego mocno zapomniane polecenie WAITFOR Wprawdzie nie da się bezpośrednio czytać zawartości pakietów, ale zawsze sobie można coś przez sieć poprzesyłać...

Autor: Grzegorz Tworek [MVP]