FltGetVolumeInformation 函数 (fltkernel.h)

FltGetVolumeInformation 例程提供有关给定卷的信息。

语法

NTSTATUS FLTAPI FltGetVolumeInformation(
  [in]  PFLT_VOLUME                     Volume,
  [in]  FILTER_VOLUME_INFORMATION_CLASS InformationClass,
  [out] PVOID                           Buffer,
  [in]  ULONG                           BufferSize,
  [out] PULONG                          BytesReturned
);

参数

[in] Volume

卷的不透明指针。 此参数是必需的,不能 NULL

[in] InformationClass

请求的信息类型。 此参数是必需的,并且必须是下列值之一。

价值 意义
FilterVolumeBasicInformation Buffer 参数接收卷的 FILTER_VOLUME_BASIC_INFORMATION 结构。
FilterVolumeStandardInformation Buffer 参数接收卷的 FILTER_VOLUME_STANDARD_INFORMATION 结构。 此结构从 Windows Vista 开始可用。

[out] Buffer

指向接收请求信息的调用方分配的缓冲区的指针。 缓冲区中返回的信息的类型由 InformationClass 参数定义。 此参数是必需的,不能 NULL

[in] BufferSize

Buffer 参数指向的缓冲区的大小(以字节为单位)。 调用方应根据给定 InformationClass 值设置此参数。 此参数是必需的。

[out] BytesReturned

指向调用方分配的变量的指针,该变量接收 Buffer 指向的缓冲区中返回的字节数。 如果 BufferSize 的输入值太小,FltGetVolumeInformation 将返回STATUS_BUFFER_TOO_SMALL并将此变量设置为存储所请求信息的字节数。 此参数是必需的,不能 NULL

返回值

FltGetVolumeInformation 返回STATUS_SUCCESS或相应的 NTSTATUS 状态代码,例如以下代码之一:

返回代码 描述
STATUS_INVALID_PARAMETER
InformationClass 参数指定了无效值。 例如,如果在 Windows Vista 之前的作系统上指定 了 filterVolumeStandardInformation,则例程将返回STATUS_INVALID_PARAMETER。 这是一个错误代码。
STATUS_BUFFER_TOO_SMALL
Buffer 参数指向的缓冲区不够大,无法存储请求的信息。 这是一个错误代码。

言论

给定不透明的卷指针(例如由 FltEnumerateVolumes 例程返回的卷指针),FltGetVolumeInformation 例程提供有关通过 Volume 参数所指向的卷的信息。 请注意,调用方最终必须通过调用 FltObjectDereference 例程释放不透明的卷指针。

FltGetVolumeInformation 例程返回单个卷的信息。 但是,给定不透明卷指针的列表,该例程可以迭代地用于创建相应卷信息结构的列表。 在此类列表中,两个或多个结构可以包含相同的卷名称。 有关详细信息,请参阅 了解具有重复卷名称的卷枚举

若要列出筛选器管理器已知的所有卷的卷信息,请调用 FltEnumerateVolumeInformation

以下列表包含相关信息,这些信息可能正在使用:

要求

要求 价值
最低支持的客户端 此例程从 Windows Vista 开始可用。
目标平台 普遍
标头 fltkernel.h (包括 FltKernel.h)
FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

另请参阅

FILTER_VOLUME_BASIC_INFORMATION

FILTER_VOLUME_STANDARD_INFORMATION

FLT_RELATED_OBJECTS

FltEnumerateFilters

FltEnumerateInstanceInformationByVolume

FltEnumerateInstances

FltEnumerateVolumeInformation

FltEnumerateVolumes

FltGetVolumeFromDeviceObject

FltGetVolumeFromFileObject

FltGetVolumeFromInstance

FltGetVolumeFromName