Fungsi CreateFiberEx (winbase.h)
Mengalokasikan objek serat, menetapkan tumpukan, dan menyiapkan eksekusi untuk memulai pada alamat awal yang ditentukan, biasanya fungsi serat. Fungsi ini tidak menjadwalkan serat.
Sintaks
LPVOID CreateFiberEx(
[in] SIZE_T dwStackCommitSize,
[in] SIZE_T dwStackReserveSize,
[in] DWORD dwFlags,
[in] LPFIBER_START_ROUTINE lpStartAddress,
[in, optional] LPVOID lpParameter
);
Parameter
[in] dwStackCommitSize
Ukuran penerapan awal tumpukan, dalam byte. Jika parameter ini nol, serat baru menggunakan ukuran tumpukan penerapan default untuk yang dapat dieksekusi. Untuk informasi selengkapnya, lihat Ukuran Tumpukan Utas.
[in] dwStackReserveSize
Ukuran cadangan awal tumpukan, dalam byte. Jika parameter ini nol, serat baru menggunakan ukuran tumpukan cadangan default untuk yang dapat dieksekusi. Untuk informasi selengkapnya, lihat Ukuran Tumpukan Utas.
[in] dwFlags
Jika parameter ini nol, status floating-point pada sistem x86 tidak dialihkan dan data dapat rusak jika serat menggunakan aritmatika floating-point. Jika parameter ini FIBER_FLAG_FLOAT_SWITCH, status floating-point dialihkan untuk serat.
Windows XP: Bendera FIBER_FLAG_FLOAT_SWITCH tidak didukung.
[in] lpStartAddress
Penunjuk ke fungsi yang ditentukan aplikasi untuk dieksekusi oleh serat dan mewakili alamat awal serat. Eksekusi serat yang baru dibuat tidak dimulai sampai serat lain memanggil fungsi SwitchToFiber dengan alamat ini. Untuk informasi selengkapnya tentang fungsi panggilan balik serat, lihat FiberProc.
[in, optional] lpParameter
Penunjuk ke variabel yang diteruskan ke serat. Serat dapat mengambil data ini dengan menggunakan makro GetFiberData .
Nilai kembali
Jika fungsi berhasil, nilai pengembalian adalah alamat serat.
Jika fungsi gagal, nilai yang dikembalikan adalah NULL. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.
Keterangan
Jumlah serat yang dapat dibuat proses dibatasi oleh memori virtual yang tersedia. Secara default, setiap serat memiliki 1 megabyte ruang tumpukan yang dipesan. Oleh karena itu, Anda dapat membuat paling banyak serat 2028. Jika Anda mengurangi ukuran tumpukan default, Anda dapat membuat lebih banyak serat. Namun, aplikasi Anda akan memiliki performa yang lebih baik jika Anda menggunakan strategi alternatif untuk memproses permintaan.
Sebelum utas dapat menjadwalkan serat menggunakan fungsi SwitchToFiber , alur harus memanggil fungsi ConvertThreadToFiber sehingga ada serat yang terkait dengan utas.
Untuk mengkompilasi aplikasi yang menggunakan fungsi ini, tentukan _WIN32_WINNT sebagai 0x0400 atau yang lebih baru. Untuk informasi selengkapnya, lihat Menggunakan Header Windows.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows XP [aplikasi desktop | Aplikasi UWP] |
Server minimum yang didukung | Windows Server 2003 [aplikasi desktop | Aplikasi UWP] |
Target Platform | Windows |
Header | winbase.h (termasuk Windows.h) |
Pustaka | Kernel32.lib |
DLL | Kernel32.dll |