Bagikan melalui


Fungsi CreateMailslotA (winbase.h)

Membuat mailslot dengan nama yang ditentukan dan mengembalikan handel yang dapat digunakan server mailslot untuk melakukan operasi pada mailslot. Mailslot bersifat lokal untuk komputer yang membuatnya. Kesalahan terjadi jika mailslot dengan nama yang ditentukan sudah ada.

Sintaks

HANDLE CreateMailslotA(
  [in]           LPCSTR                lpName,
  [in]           DWORD                 nMaxMessageSize,
  [in]           DWORD                 lReadTimeout,
  [in, optional] LPSECURITY_ATTRIBUTES lpSecurityAttributes
);

Parameter

[in] lpName

Nama mailslot. Nama ini harus memiliki formulir berikut:

\\.\mailslot\[path]name

Bidang nama harus unik. Nama dapat mencakup beberapa tingkat direktori pseudo yang dipisahkan oleh garis miring terbelakang. Misalnya, baik \\.\mailslot\example_mailslot_name dan \\.\mailslot\abc\def\ghi adalah nama yang valid.

[in] nMaxMessageSize

Ukuran maksimum satu pesan yang dapat ditulis ke mailslot, dalam byte. Untuk menentukan bahwa pesan dapat berukuran berapa pun, atur nilai ini ke nol.

[in] lReadTimeout

Waktu operasi baca dapat menunggu pesan ditulis ke mailslot sebelum waktu habis terjadi, dalam milidetik. Nilai berikut memiliki arti khusus.

Nilai Makna
0
Segera mengembalikan jika tidak ada pesan. (Sistem tidak memperlakukan pengembalian segera sebagai kesalahan.)
MAILSLOT_WAIT_FOREVER
((DWORD)-1)
Menunggu selamanya untuk pesan.
 

Nilai batas waktu ini berlaku untuk semua operasi baca berikutnya dan semua handel mailslot yang diwariskan.

[in, optional] lpSecurityAttributes

Penunjuk ke struktur SECURITY_ATTRIBUTES . Anggota bInheritHandle dari struktur menentukan apakah handel yang dikembalikan dapat diwariskan oleh proses anak. Jika lpSecurityAttributesadalah NULL, handel tidak dapat diwariskan.

Mengembalikan nilai

Jika fungsi berhasil, nilai yang dikembalikan adalah handel ke mailslot, untuk digunakan dalam operasi mailslot server. Handel yang dikembalikan oleh fungsi ini asinkron, atau tumpang tindih.

Jika fungsi gagal, nilai yang dikembalikan INVALID_HANDLE_VALUE. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.

Keterangan

Mailslot ada sampai salah satu kondisi berikut ini benar:

  • Handel terakhir (mungkin diwariskan atau diduplikasi) untuk itu ditutup menggunakan fungsi CloseHandle .
  • Proses yang memiliki pintu keluar yang terakhir (mungkin diwariskan atau diduplikasi) menangani keluar.
Sistem menggunakan metode kedua untuk menghancurkan mailslots.

Untuk menulis pesan ke mailslot, proses menggunakan fungsi CreateFile , menentukan nama mailslot dengan menggunakan salah satu format berikut.

Format Penggunaan
\\.\mailslot\name Mengambil handel klien ke mailslot lokal.
\\computername\mailslot\name Mengambil handel klien ke mailslot jarak jauh.
\\domainname\mailslot\name Mengambil handel klien ke semua mailslots dengan nama yang ditentukan di domain yang ditentukan.
\\*\mailslot\name Mengambil handel klien ke semua mailslots dengan nama yang ditentukan di domain utama sistem.
 

Jika CreateFile menentukan domain atau menggunakan format tanda bintang untuk menentukan domain utama sistem, aplikasi tidak dapat menulis lebih dari 424 byte pada satu waktu ke mailslot. Jika aplikasi mencoba melakukannya, fungsi WriteFile gagal dan GetLastError mengembalikan ERROR_BAD_NETPATH.

Aplikasi harus menentukan bendera FILE_SHARE_READ saat menggunakan CreateFile untuk mengambil handel klien ke mailslot.

Jika CreateFile dipanggil untuk mengakses mailslot yang tidak ada, kode kesalahan ERROR_FILE_NOT_FOUND akan diatur.

Contoh

Misalnya, lihat Membuat Mailslot.

Catatan

Header winbase.h mendefinisikan CreateMailslot sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta pra-prosesor UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header winbase.h (termasuk Windows.h)
Pustaka Kernel32.lib
DLL Kernel32.dll

Lihat juga

CloseHandle

CreateFile

GetMailslotInfo

Fungsi Mailslot

Gambaran Umum Mailslots

SECURITY_ATTRIBUTES

SetMailslotInfo

WriteFile