Fungsi CreateFiber (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.

Untuk menentukan ukuran penerapan dan cadangan tumpukan, gunakan fungsi CreateFiberEx .

Sintaks

LPVOID CreateFiber(
  [in]           SIZE_T                dwStackSize,
  [in]           LPFIBER_START_ROUTINE lpStartAddress,
  [in, optional] LPVOID                lpParameter
);

Parameter

[in] dwStackSize

Ukuran awal yang diterapkan dari 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] 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 .

Mengembalikan nilai

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. Misalnya, jika Anda membuat setiap serat dengan 1 megabyte ruang tumpukan cadangan, Anda dapat membuat paling banyak serat 2028. Jika Anda mengurangi ukuran tumpukan default dengan menggunakan pernyataan STACKSIZE dalam file definisi modul (.def) atau dengan menggunakan CreateFiberEx, Anda dapat membuat lebih banyak serat. Namun, aplikasi Anda akan memiliki performa yang lebih baik jika Anda menggunakan strategi alternatif untuk memproses permintaan alih-alih membuat sejumlah besar serat.

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.

Contoh

Misalnya, lihat Menggunakan Fiber.

Persyaratan

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

Lihat juga

ConvertThreadToFiber

CreateFiberEx

FiberProc

Serat

GetFiberData

Fungsi Proses dan Utas

SwitchToFiber