Fungsi SetNamedPipeHandleState (namedpipeapi.h)
Mengatur mode baca dan mode pemblokiran dari pipa bernama yang ditentukan. Jika handel yang ditentukan adalah ke akhir klien dari pipa bernama dan jika proses server pipa bernama ada di komputer jarak jauh, fungsi juga dapat digunakan untuk mengontrol buffering lokal.
Sintaks
BOOL SetNamedPipeHandleState(
[in] HANDLE hNamedPipe,
[in, optional] LPDWORD lpMode,
[in, optional] LPDWORD lpMaxCollectionCount,
[in, optional] LPDWORD lpCollectDataTimeout
);
Parameter
[in] hNamedPipe
Handel ke instans pipa bernama. Parameter ini dapat menjadi handel ke ujung server pipa, seperti yang dikembalikan oleh fungsi CreateNamedPipe , atau ke akhir klien pipa, seperti yang dikembalikan oleh fungsi CreateFile . Handel harus memiliki akses GENERIC_WRITE ke pipa bernama untuk pipa tulis-saja atau baca/tulis, atau harus memiliki akses GENERIC_READ dan FILE_WRITE_ATTRIBUTES untuk pipa baca-saja.
Parameter ini juga dapat menjadi handel ke pipa anonim, seperti yang dikembalikan oleh fungsi CreatePipe .
[in, optional] lpMode
Mode pipa baru. Mode ini adalah kombinasi dari bendera mode baca dan bendera mode tunggu. Parameter ini bisa NULL jika mode tidak diatur. Tentukan salah satu mode berikut.
Salah satu mode tunggu berikut dapat ditentukan.
Mode | Makna |
---|---|
|
Mode pemblokiran diaktifkan. Mode ini adalah default jika tidak ada bendera mode tunggu yang ditentukan. Ketika handel pipa mode pemblokiran ditentukan dalam fungsi ReadFile, WriteFile, atau ConnectNamedPipe , operasi tidak selesai sampai ada data untuk dibaca, semua data ditulis, atau klien tersambung. Penggunaan mode ini dapat berarti menunggu tanpa batas waktu dalam beberapa situasi bagi proses klien untuk melakukan tindakan. |
|
Mode nonblocking diaktifkan. Dalam mode ini, ReadFile, WriteFile, dan ConnectNamedPipe selalu segera kembali. Perhatikan bahwa mode nonblocking didukung untuk kompatibilitas dengan Microsoft LAN Manager versi 2.0 dan tidak boleh digunakan untuk mencapai input dan output asinkron (I/O) dengan pipa bernama. |
[in, optional] lpMaxCollectionCount
Jumlah maksimum byte yang dikumpulkan pada komputer klien sebelum transmisi ke server. Parameter ini harus NULL jika handel pipa yang ditentukan adalah ke akhir server dari pipa bernama atau jika proses klien dan server berada di komputer yang sama. Parameter ini diabaikan jika proses klien menentukan bendera FILE_FLAG_WRITE_THROUGH dalam fungsi CreateFile saat handel dibuat. Parameter ini bisa NULL jika jumlah koleksi tidak diatur.
[in, optional] lpCollectDataTimeout
Waktu maksimum, dalam milidetik, yang dapat berlalu sebelum pipa bernama jarak jauh mentransfer informasi melalui jaringan. Parameter ini harus NULL jika handel pipa yang ditentukan adalah ke akhir server dari pipa bernama atau jika proses klien dan server berada di komputer yang sama. Parameter ini diabaikan jika proses klien menentukan bendera FILE_FLAG_WRITE_THROUGH dalam fungsi CreateFile saat handel dibuat. Parameter ini bisa NULL jika jumlah koleksi tidak diatur.
Mengembalikan nilai
Jika fungsi berhasil, nilai yang dikembalikan bukan nol.
Jika fungsi gagal, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.
Keterangan
Windows 10, versi 1709: Pipa hanya didukung dalam kontainer aplikasi; yaitu, dari satu proses UWP ke proses UWP lain yang merupakan bagian dari aplikasi yang sama. Selain itu, pipa bernama harus menggunakan sintaks \\.\pipe\LOCAL\
untuk nama pipa.
Contoh
Misalnya, lihat Klien Pipa Bernama.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 2000 Professional [aplikasi desktop | Aplikasi UWP] |
Server minimum yang didukung | Windows 2000 Server [aplikasi desktop | Aplikasi UWP] |
Target Platform | Windows |
Header | namedpipeapi.h |
Pustaka | Kernel32.lib |
DLL | Kernel32.dll |