Bagikan melalui


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:

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)

Lihat juga

MRxIsValidDirectory

MRxQueryDirectory

MRxQueryEaInfo

MRxQueryFileInfo

MRxQueryQuotaInfo

MRxQuerySdInfo

MRxSetEaInfo

MRxSetFileInfo

MRxSetFileInfoAtCleanup

MRxSetQuotaInfo

MRxSetSdInfo

MRxSetVolumeInfo

RxFsdPostRequest