Rutinitas MRxQueryVolumeInfo
Rutinitas MRxQueryVolumeInfo dipanggil oleh RDBSS untuk meminta informasi volume kueri pengalih mini jaringan.
Sintaks
PMRX_CALLDOWN MRxQueryVolumeInfo;
NTSTATUS MRxQueryVolumeInfo(
_Inout_ PRX_CONTEXT RxContext
)
{ ... }
Parameter
RxContext [masuk, keluar]
Penunjuk ke struktur RX_CONTEXT. Parameter ini berisi IRP yang meminta operasi.
Mengembalikan nilai
MRxQueryVolumeInfo mengembalikan STATUS_SUCCESS pada keberhasilan atau nilai NTSTATUS yang sesuai, seperti salah satu hal berikut:
Menampilkan kode | Deskripsi |
---|---|
STATUS_ACCESS_DENIED | Pemanggil tidak memiliki keamanan yang tepat untuk operasi ini. |
STATUS_BUFFER_OVERFLOW | Buffer untuk menerima informasi volume terlalu kecil. Nilai pengembalian ini harus dianggap berhasil dan sebanyak mungkin data yang valid harus dikembalikan di anggota Info.Buffer dari struktur RX_CONTEXT yang ditunjukkan oleh parameter RxContext . |
STATUS_BUFFER_TOO_SMALL | Buffer terlalu kecil untuk menerima data yang diminta. Jika nilai ini dikembalikan, anggota InformationToReturn dari struktur RX_CONTEXT yang diacu oleh parameter RxContext harus diatur ke ukuran minimum buffer yang diharapkan agar panggilan berhasil. |
STATUS_CONNECTION_DISCONNECTED | Sambungan terputus. |
STATUS_INSUFFICIENT_RESOURCES | Sumber daya tidak cukup untuk menyelesaikan kueri. |
STATUS_INVALID_PARAMETER | Parameter yang tidak valid ditentukan. |
STATUS_NETWORK_NAME_DELETED | Nama jaringan telah dihapus. |
STATUS_NOT_IMPLEMENTED | Fitur yang diminta tidak diimplementasikan. |
Keterangan
RDBSS mengeluarkan panggilan ke MRxQueryVolumeInfo dalam salah satu kasus berikut:
RDBSS menerima permintaan IRP_MJ_QUERY_VOLUME_INFORMATION .
RDBSS menerima permintaan IRP_MJ_FILE_SYSTEM_CONTROL untuk kode kontrol FSCTL_LMR_GET_LINK_TRACKING_INFORMATION.
Sebelum memanggil MRxQueryVolumeInfo dalam kasus permintaan IRP_MJ_QUERY_VOLUME_INFORMATION, RDBSS memodifikasi anggota berikut dalam struktur RX_CONTEXT yang ditunjukkan oleh parameter RxContext :
Anggota Info.FsInformationClass diatur ke IrpSp-Parameters.QueryVolume.FsInformationClass>.
Anggota Info.Buffer diatur ke Irp-AssociatedIrp.SystemBuffer>.
Anggota Info.LengthRemaining diatur ke IrpSp-Parameters.QueryVolume.Length>.
Untuk permintaan IRP_MJ_QUERY_VOLUME_INFORMATION, jika anggota PostRequest dari struktur RX_CONTEXT true saat dikembalikan dari MRxQueryVolumeInfo, RDBSS akan memanggil RxFsdPostRequest untuk memposting permintaan. Untuk kasus ini, permintaan IRP_MJ_QUERY_VOLUME_INFORMATION akan meneruskan struktur RX_CONTEXT ke antrean RX_CONTEXT ke antrean pekerja untuk diproses oleh proses sistem file (FSP).
Jika anggota PostRequest dari struktur RX_CONTEXT FALSE saat dikembalikan dari MRxQueryVolumeInfo, pengalih mini jaringan harus mengatur anggota Info.LengthRemaining dari struktur RX_CONTEXT ke panjang informasi volume yang dikembalikan. RDBSS menetapkan anggota IoStatus.Information dari IRP ke IrpSp-Parameters.QueryVolume.Length> dikurangi anggota Info.LengthRemaining dari struktur RX_CONTEXT.
Jika panggilan ke MRxQueryVolumeInfo berhasil, redirector mini jaringan harus mengatur anggota Info.LengthRemaining dari struktur RX_CONTEXT ke anggota Info.Length dikurangi panjang informasi volume yang dikembalikan. Jika panggilan ke MRxQueryVolumeInfo berhasil, RDBSS menetapkan anggota IoStatus.Information dari IRP ke IrpSp-Parameters.QueryVolume.Length> dikurangi anggota Info.LengthRemaining dari struktur RX_CONTEXT.
Untuk permintaan IRP_MJ_QUERY_VOLUME_INFORMATION dengan anggota Info.FsInformationClass yang diatur ke FileFsDeviceInformation, redirector mini jaringan mengembalikan informasi berikut dalam struktur RX_CONTEXT yang ditunjukkan oleh parameter RxContext :
Anggota Info.Buffer berisi struktur FILE_FS_DEVICE_INFORMATION
Anggota Info.Buffer.Characteristics diatur ke karakteristik volume, yang harus menyertakan FILE_REMOTE_DEVICE sebagai salah satu opsi.
Anggota Info.Buffer.DeviceType diatur ke anggota DeviceType dari struktur NET_ROOT terkait. Jika anggota Jenis NET_ROOT terkait NET_ROOT_PIPE, anggota Info.Buffer.DeviceType diatur ke FILE_DEVICE_NAMED_PIPE.
Untuk permintaan IRP_MJ_QUERY_VOLUME_INFORMATION dengan anggota Info.FsInformationClass yang diatur ke FileFsVolumeInformation, redirector mini jaringan mengembalikan informasi berikut dalam struktur RX_CONTEXT yang diarahkan oleh parameter RxContext :
Anggota Info.Buffer berisi struktur FILE_FS_VOLUME_INFORMATION.
Anggota Info.Buffer diatur ke anggota VolumeInfo dari struktur NET_ROOT terkait.
Anggota Info.LengthRemaining diatur ke anggota VolumeInfoLength dari struktur NET_ROOT terkait.
Panggilan MRxQueryVolumeInfo dari RDBSS untuk IRP_MJ_FILE_SYSTEM_CONTROL adalah permintaan untuk informasi pelacakan tautan. Sebelum memanggil MRxQueryVolumeInfo untuk IRP_MJ_FILE_SYSTEM_CONTROL, RDBSS memodifikasi anggota berikut dalam struktur RX_CONTEXT yang ditujukkan oleh parameter RxContext :
Anggota Info.FsInformationClass diatur ke FileFsObjectIdInformation.
Anggota Info.Buffer diatur ke struktur FILE_FS_OBJECTID_INFORMATION.
Anggota Info.LengthRemaining diatur ke sizeof(FILE_FS_OBJECTID_INFORMATION).
Untuk kasus permintaan IRP_MJ_FILE_SYSTEM_CONTROL ini, anggota AssociatedIrp.SystemBuffer dari IRP menunjuk ke struktur LINK_TRACKING_INFORMATION.
Jika permintaan dimulai sebagai IRP_MJ_FILE_SYSTEM_CONTROL ke MRxQueryVolumeInfo dengan nilai pengembalian STATUS_SUCCESS atau STATUS_BUFFER_OVERFLOW, RDBSS menyalin anggota ObjectId dari struktur FILE_FS_OBJECTID_INFORMATION yang diteruskan di anggota Info.Buffer dari struktur RX_CONTEXT ke anggota NetRoot-DiskParameters.VolumeId> dari struktur FCB dan ke anggota AssociatedIrp.SystemBuffer.VolumeId dari IRP. Jika panggilan ke MRxQueryVolumeInfo berhasil, RDBSS menetapkan anggota Jenis struktur LINK_TRACKING_INFORMATION. Jika anggota NetRoot-Flags> dari struktur FCB memiliki set bit NETROOT_FLAG_DFS_AWARE_NETROOT, anggota Jenis diatur oleh RDBSS ke DfsLinkTrackingInformation. Jika anggota NetRoot-Flags> dari struktur FCB tidak memiliki set bit NETROOT_FLAG_DFS_AWARE_NETROOT, anggota Jenis diatur oleh RDBSS ke NtfsLinkTrackingInformation. Setelah berhasil, RDBSS menetapkan anggota IoStatus.Information dari IRP ke ukuran struktur LINK_TRACKING_INFORMATION.
Persyaratan
Platform target |
Desktop |
Header |
Mrx.h (termasuk Mrx.h) |