Bagikan melalui


Fungsi PathAllocCanonicalize (pathcch.h)

Mengonversi string jalur menjadi bentuk kanonis.

Fungsi ini berbeda dari PathCchCanonicalize dan PathCchCanonicalizeEx karena mengembalikan hasil pada timbunan. Ini berarti bahwa pemanggil tidak perlu mendeklarasikan ukuran string yang dikembalikan dan mengurangi penggunaan tumpukan.

Fungsi ini berbeda dari PathCanonicalize karena menerima jalur dengan awalan "\", "\?" dan "\?\UNC".

Catatan Fungsi ini, PathCchCanonicalize, atau PathCchCanonicalizeEx, harus digunakan sebagai ganti PathCanonicalize.

Sintaksis

WINPATHCCHAPI HRESULT PathAllocCanonicalize(
  [in]  PCWSTR pszPathIn,
  [in]  ULONG  dwFlags,
  [out] PWSTR  *ppszPathOut
);

Parameter

[in] pszPathIn

Penunjuk ke buffer yang berisi string asli. Nilai ini tidak dapat null.

[in] dwFlags

Satu atau beberapa bendera berikut:

Nilai Arti
PATHCCH_NONE
0x0000000
Jangan izinkan pembangunan jalur \\?\ (yaitu, jalur panjang) lebih lama dari MAX_PATH .
PATHCCH_ALLOW_LONG_PATHS
0x00000001
Izinkan pembangunan jalur \\?\ lebih panjang dari MAX_PATH .
PATHCCH_FORCE_ENABLE_LONG_NAME_PROCESS
0x00000002
Memaksa API untuk memperlakukan pemanggil selama jalur panjang diaktifkan, terlepas dari status aktif nama panjang proses. Opsi ini hanya dapat digunakan ketika PATHCCH_ALLOW_LONG_PATHS ditentukan, dan tidak dapat digunakan dengan PATHCCH_FORCE_DISABLE_LONG_NAME_PROCESS.

Catatan Nilai ini tersedia mulai dari Windows 10, versi 1703.

PATHCCH_FORCE_DISABLE_LONG_NAME_PROCESS
0x00000004
Memaksa API untuk memperlakukan pemanggil selama jalur panjang dinonaktifkan, terlepas dari status aktif nama panjang proses. Opsi ini hanya dapat digunakan ketika PATHCCH_ALLOW_LONG_PATHS ditentukan, dan tidak dapat digunakan dengan PATHCCH_FORCE_ENABLE_LONG_NAME_PROCESS.

Catatan Nilai ini tersedia mulai dari Windows 10, versi 1703.

PATHCCH_DO_NOT_NORMALIZE_SEGMENTS
0x00000008
Menonaktifkan normalisasi segmen jalur yang mencakup penghapusan titik dan spasi berikutnya. Ini memungkinkan akses ke jalur yang akan diblokir oleh normalisasi jalur win32.

Catatan Nilai ini tersedia mulai dari Windows 10, versi 1703.

PATHCCH_ENSURE_IS_EXTENDED_LENGTH_PATH
0x00000010
Mengonversi jalur input ke dalam formulir jalur perangkat DOS panjang yang diperluas (dengan awalan \\?\) jika belum dalam formulir tersebut. Ini memungkinkan akses ke jalur yang tidak dapat diatasi karena aturan normalisasi Win32 (yang dapat menghapus titik dan spasi berikutnya) dan batasan panjang jalur. Opsi ini menyiratkan perilaku PATHCCH_DO_NOT_NORMALIZE_SEGMENTSyang sama.

Catatan Nilai ini tersedia mulai dari Windows 10, versi 1703.

PATHCCH_ENSURE_TRAILING_SLASH
0x00000020
Saat menggabungkan atau menormalkan jalur, pastikan ada garis miring terbelakang.

Catatan Nilai ini tersedia mulai dari Windows 10, versi 1703.

PATHCCH_CANONICALIZE_SLASHES
0x00000040
Konversi garis miring ke garis miring kembali dan ciutkan beberapa garis miring.

Catatan Nilai ini tersedia mulai dari Windows 11 (SDK versi 10.0.22000.194).

[out] ppszPathOut

Alamat penunjuk ke buffer yang, ketika fungsi ini berhasil dikembalikan, menerima string jalur kanonis. Pemanggil bertanggung jawab untuk membebaskan sumber daya ini, ketika tidak lagi diperlukan, dengan memanggil fungsi LocalFree. Nilai ini tidak dapat null.

Mengembalikan nilai

Jika fungsi ini berhasil, fungsi akan mengembalikan S_OK. Jika tidak, kode kesalahan HRESULT.

Komentar

Fungsi ini mendukung formulir jalur alternatif ini:

  • \\?\
  • \\?\\UNC\
  • \\?\Volume{guid}\

Fungsi ini tidak mengonversi garis miring ke depan (/) menjadi garis miring belakang (\). Dengan input yang tidak tepercaya, fungsi ini dengan sendirinya, tidak dapat digunakan untuk mengonversi jalur menjadi bentuk yang dapat dibandingkan dengan jalur lain untuk sub-jalur atau identitas. Penelepon yang membutuhkan kemampuan tersebut harus mengonversi maju ke garis miring kembali sebelum menggunakan fungsi ini.

Persyaratan

Syarat Nilai
klien minimum yang didukung Windows 8 [aplikasi desktop | Aplikasi UWP]
server minimum yang didukung Windows Server 2012 [aplikasi desktop | Aplikasi UWP]
Platform Target Windows
Header pathcch.h
Pustaka Pathcch.lib