Bagikan melalui


Fungsi RxPrepareToReparseSymbolicLink (rxprocs.h)

RxPrepareToReparseSymbolicLink menyiapkan nama objek file untuk memfasilitasi pemilahan ulang. Rutinitas ini digunakan oleh pengalih mini jaringan untuk melintasi tautan simbolis.

Sintaks

NTSTATUS RxPrepareToReparseSymbolicLink(
  PRX_CONTEXT     RxContext,
  BOOLEAN         SymbolicLinkEmbeddedInOldPath,
  PUNICODE_STRING NewPath,
  BOOLEAN         NewPathIsAbsolute,
  PBOOLEAN        ReparseRequired
);

Parameter

RxContext

Penunjuk ke struktur RX_CONTEXT.

SymbolicLinkEmbeddedInOldPath

Nilai Boolean yang menunjukkan bahwa tautan simbolis ditemukan. Jika nilainya TRUE, tautan simbolis ditemui sebagai bagian dari traversal jalur lama.

NewPath

Penunjuk ke string Unicode yang berisi nama jalur baru yang akan dilalui.

NewPathIsAbsolute

Nilai Boolean yang menunjukkan apakah jalur baru bersifat absolut. Jika nilai ini FALSE, \Device\Mup harus ditambahkan ke NewPath. Jika nilai ini TRUE, parameter NewPath adalah jalur lengkap untuk dipilah kembali. Dalam hal ini, buffer yang berisi NewPath digunakan secara langsung, daripada mengalokasikan buffer baru.

ReparseRequired

Penunjuk ke nilai Boolean yang menunjukkan apakah pemisahan ulang diperlukan. Jika nilai ini TRUE, diperlukan pemisahan ulang.

Nilai kembali

RxPrepareToReparseSymbolicLink mengembalikan STATUS_SUCCESS pada keberhasilan atau salah satu nilai kesalahan berikut pada kegagalan:

Menampilkan kode Deskripsi
STATUS_ACCESS_DENIED
Permintaan untuk menghapus gagal.
STATUS_INSUFFICIENT_RESOURCES
Tidak tersedia cukup sumber daya.
STATUS_INVALID_PARAMETER
Parameter yang tidak valid diteruskan ke rutinitas. Kesalahan ini akan dikembalikan jika anggota MajorFunctionRxContext tidak IRP_MJ_CREATE.

Keterangan

Rutinitas RxPrepareToReparseSymbolicLink hanya akan digunakan oleh pengalih mini jaringan yang mendukung tautan simbolis dan menggunakan titik reparse untuk mengimplementasikan tautan simbolis. Rutinitas RxPrepareToReparseSymbolicLink biasanya akan dipanggil oleh pengalih mini jaringan dari rutinitas panggilan balik MrxCreate-nya .

Parameter SymbolicLinkEmbeddedInOldPath yang diteruskan ke rutinitas ini sangat penting. Untuk mempertahankan semantik yang benar, semantik harus digunakan dengan hati-hati. Misalnya, pertimbangkan jalur lama \A\B\C\D di mana C kebetulan merupakan tautan simbolis. Dalam hal ini, tautan simbolis disematkan di jalur dan SymbolicLinkEmbeddedInOldPath harus diatur ke TRUE. Sebaliknya, ini sangat berbeda dari kasus ketika D kebetulan menjadi tautan simbolis. Dalam kasus sebelumnya, pemisahan ulang merupakan langkah perantara. Dalam contoh kedua, pemisahan ulang merupakan langkah terakhir dari resolusi nama dan SymbolicLinkEmbeddedInOldPath harus diatur ke FALSE.

Jika akses DELETE ditentukan, operasi buka atau buat ditolak untuk semua kasus di mana tautan simbolis tidak disematkan. Ada kemungkinan bahwa jika akses DELETE adalah satu-satunya yang ditentukan, maka upaya terbuka harus berhasil tanpa pemilahan ulang. Ini sesuai dengan semantik tautan simbolis UNIX.

Sebagai bagian dari rutinitas ini, RxContext juga ditandai dengan tepat. Ini memastikan bahwa nilai yang dikembalikan dapat diperiksa silang dengan pemanggilan rutinitas ini. Setelah RxPrepareToReparseSymbolicLink dipanggil, pengalih mini jaringan harus mengembalikan STATUS_REPARSE.

Nilai parameter ReparseRequired mengasumsikan signifikansi hanya jika STATUS_SUCCESS dikembalikan dari rutinitas ini. Jika ReparseRequiredFALSE, ini menyiratkan bahwa tidak ada upaya pemilahan ulang yang diperlukan dan file tautan simbolis itu sendiri harus dimanipulasi dibandingkan dengan target tautan. Jika ReparseRequiredTRUE, ini menyiratkan bahwa upaya pemilahan ulang berhasil disiapkan. Dalam kasus seperti itu, sangat penting bahwa pengalih mini jaringan mengembalikan STATUS_REPARSE untuk panggilan MRxCreate terkait. RDBSS akan memulai pemeriksaan untuk kondisi ini.

Persyaratan

Persyaratan Nilai
Target Platform Desktop
Header rxprocs.h (termasuk Rxprocs.h)
IRQL <= APC_LEVEL

Lihat juga

MRxCreate