Fungsi TlsAlloc (processthreadsapi.h)
Mengalokasikan indeks penyimpanan lokal utas (TLS). Setiap utas proses kemudian dapat menggunakan indeks ini untuk menyimpan dan mengambil nilai yang lokal ke utas, karena setiap utas menerima slotnya sendiri untuk indeks.
Sintaks
DWORD TlsAlloc();
Mengembalikan nilai
Jika fungsi berhasil, nilai yang dikembalikan adalah indeks TLS. Slot untuk indeks diinisialisasi ke nol.
Jika fungsi gagal, nilai yang dikembalikan TLS_OUT_OF_INDEXES. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.
Keterangan
Windows Phone 8.1: Fungsi ini didukung untuk aplikasi Windows Phone Store di Windows Phone 8.1 dan yang lebih baru. Saat aplikasi Windows Phone Store memanggil fungsi ini, aplikasi diganti dengan panggilan sebaris ke FlsAlloc. Lihat FlsAlloc untuk dokumentasi fungsi.
Windows 8.1, Windows Server 2012 R2, dan Windows 10, versi 1507: Fungsi ini didukung untuk aplikasi Windows Store di Windows 8.1, Windows Server 2012 R2, dan Windows 10, versi 1507. Ketika aplikasi Windows Store memanggil fungsi ini, aplikasi diganti dengan panggilan sebaris ke FlsAlloc. Lihat FlsAlloc untuk dokumentasi fungsi.
Windows 10, versi 1511 dan Windows 10, versi 1607: Fungsi ini didukung penuh untuk aplikasi Platform Windows Universal (UWP), dan tidak lagi diganti dengan panggilan sebaris ke FlsAlloc.
Utas proses dapat menggunakan indeks TLS dalam panggilan berikutnya ke fungsi TlsFree, TlsSetValue, atau TlsGetValue . Nilai indeks TLS harus diperlakukan sebagai nilai buram; jangan berasumsi bahwa itu adalah indeks ke dalam array berbasis nol.
Indeks TLS biasanya dialokasikan selama proses atau inisialisasi pustaka tautan dinamis (DLL). Ketika indeks TLS dialokasikan, slot penyimpanannya diinisialisasi ke NULL. Setelah indeks TLS dialokasikan, setiap utas proses dapat menggunakannya untuk mengakses slot penyimpanan TLS-nya sendiri. Untuk menyimpan nilai di slot TLS-nya, utas menentukan indeks dalam panggilan ke TlsSetValue. Utas menentukan indeks yang sama dalam panggilan berikutnya ke TlsGetValue, untuk mengambil nilai yang disimpan.
Indeks TLS tidak valid di seluruh batas proses. DLL tidak dapat mengasumsikan bahwa indeks yang ditetapkan dalam satu proses valid dalam proses lain.
Contoh
Misalnya, lihat Menggunakan Penyimpanan Lokal Utas atau Menggunakan Penyimpanan Lokal Utas di Pustaka Dynamic-Link.
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 | processthreadsapi.h (termasuk Windows.h di Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2) |
Pustaka | Kernel32.lib; WindowsPhoneCore.lib di Windows Phone 8.1 |
DLL | KernelBase.dll pada Windows Phone 8.1; Kernel32.dll |