Fungsi GetTempPath2W (fileapi.h)
Mengambil jalur direktori yang ditunjuk untuk file sementara, berdasarkan hak istimewa proses panggilan.
Sintaksis
DWORD GetTempPath2W(
[in] DWORD BufferLength,
[out] LPWSTR Buffer
);
Parameter
[in] BufferLength
Ukuran buffer string yang diidentifikasi oleh lpBuffer, dalam TCHAR.
[out] Buffer
Penunjuk ke buffer string yang menerima string yang dihentikan null yang menentukan jalur file sementara. String yang dikembalikan diakhir dengan garis miring terbelakang, misalnya, "C:\TEMP\".
Mengembalikan nilai
Jika fungsi berhasil, nilai pengembalian adalah panjangnya, dalam TCHAR, dari string yang disalin ke lpBuffer, tidak termasuk karakter null yang mengakhiri. Jika nilai yang dikembalikan lebih besar dari nBufferLength, nilai pengembalian adalah panjangnya, dalam TCHAR, dari buffer yang diperlukan untuk menahan jalur.
Jika fungsi gagal, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, panggil GetLastError.
Nilai pengembalian maksimum yang mungkin adalah MAX_PATH+1 (261).
Komentar
Ketika memanggil fungsi ini dari proses yang berjalan sebagai SYSTEM, itu akan mengembalikan jalur C:\Windows\SystemTemp, yang tidak dapat diakses oleh proses non-SISTEM. Untuk proses non-SISTEM, GetTempPath2
Untuk proses sistem, fungsi GetTempPath2 memeriksa keberadaan variabel lingkungan SystemTemp
. Jika variabel lingkungan ini diatur, variabel lingkungan akan menggunakan nilai variabel lingkungan sebagai jalur alih-alih jalur yang disediakan sistem default pada drive C:
.
Nota
Alasan GetTempPath2 ada dan default untuk mengembalikan C:\Windows\SystemTemp adalah karena direktori tersebut adalah ACL'd dengan izin yang benar untuk mencegah masalah pengalihan jalur umum. Untuk alasan keamanan, hanya atur variabel lingkungan SystemTemp ke direktori dengan izin yang hanya memungkinkan proses/administrator SISTEM mengaksesnya.
Untuk proses non-sistem, fungsi GetTempPath2 memeriksa keberadaan variabel lingkungan dalam urutan berikut dan menggunakan jalur pertama yang ditemukan:
- Jalur yang ditentukan oleh variabel lingkungan TMP.
- Jalur yang ditentukan oleh variabel lingkungan TEMP.
- Jalur yang ditentukan oleh variabel lingkungan USERPROFILE.
- Direktori Windows.
Perhatikan bahwa fungsi tidak memverifikasi bahwa jalur ada, juga tidak menguji untuk melihat apakah proses saat ini memiliki jenis hak akses ke jalur. Fungsi GetTempPath2
Perilaku tautan Simbolis: Jika jalur menunjuk ke tautan simbolis, nama jalur sementara mempertahankan tautan simbolis apa pun.
Di Windows 8 dan Windows Server 2012, fungsi ini didukung oleh teknologi berikut.
Teknologi | Didukung |
---|---|
Protokol Server Message Block (SMB) 3.0 | Ya |
Failover Transparan (TFO) SMB 3.0 | Ya |
SMB 3.0 dengan Scale-out File Shares (SO) | Ya |
Sistem File Volume Bersama Kluster (CsvFS) | Ya |
Sistem File Tangguh (ReFS) | Ya |
Contoh
Misalnya, lihat Membuat dan Menggunakan File Sementara.
Nota
Header fileapi.h
mendefinisikan GetTempPath2 sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta praprosesor 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
Syarat | Nilai |
---|---|
klien minimum yang didukung | Windows 11 Build 22000 |
server minimum yang didukung |
Windows Server 2016 Build 14393 |
Header |
fileapi.h (termasuk Windows.h) |
Pustaka |
Kernel32.lib |
DLL |
Kernel32.dll |
Lihat juga
GetTempFileName
Tautan Simbolis