FltGetVolumeProperties 函数 (fltkernel.h)
FltGetVolumeProperties 例程返回给定卷的卷属性信息。
语法
NTSTATUS FLTAPI FltGetVolumeProperties(
[in] PFLT_VOLUME Volume,
[out] PFLT_VOLUME_PROPERTIES VolumeProperties,
ULONG VolumePropertiesLength,
[out] PULONG LengthReturned
);
参数
[in] Volume
卷的不透明指针。 此参数是必需的,不能 NULL。
[out] VolumeProperties
指向接收请求的卷属性信息的调用方分配的缓冲区的指针。 如果输入时 长度 为零,则忽略此参数。 否则,此参数是必需的,不能 NULL。
VolumePropertiesLength
VolumeProperties 参数指向的缓冲区的大小(以字节为单位)。 此参数是可选的,可以是零。 如果为零,则 LengthReturned 接收保存卷属性所需的缓冲区的大小(以字节为单位)。 如果此参数为非零,则它必须至少为 sizeof(FLT_VOLUME_PROPERTIES)的值。
[out] LengthReturned
指向调用方分配的变量的指针,该变量接收 VolumeProperties中返回的信息的大小(以字节为单位)。 如果 FltGetVolumeProperties 返回STATUS_BUFFER_TOO_SMALL,或者如果输入时 Length 为零,则此参数将接收保存卷属性所需的缓冲区的大小(以字节为单位)。 此参数是必需的,不能 NULL。
返回值
FltGetVolumeProperties 返回STATUS_SUCCESS或适当的 NTSTATUS 值,例如以下值之一:
返回代码 | 描述 |
---|---|
|
VolumeProperties 参数指向的缓冲区足够大,足以容纳 FLT_VOLUME_PROPERTIES 结构的固定部分,但不包含 FileSystemDriverName、FileSystemDeviceName或 RealDeviceName 成员。 在这种情况下,只有 VolumeProperties 参数指向的缓冲区中返回卷信息的固定部分。 LengthReturned 参数接收返回的数据的实际长度(以字节为单位)。 这是一个警告代码。 |
|
VolumeProperties 参数指向的缓冲区不够大,无法容纳卷属性信息。 LengthReturned 参数接收所需的缓冲区大小。 在这种情况下,不会返回卷信息。 这是一个错误代码。 |
言论
FltGetVolumeProperties 仅返回可以在装载过程中安全地查询的信息,而不会出现系统死锁的风险。 因此,微型筛选器驱动程序通常从装载后回调函数或 InstanceSetupCallback (PFLT_INSTANCE_SETUP_CALLBACK) 例程调用此例程,以确定是否附加到给定卷。
要求
要求 | 价值 |
---|---|
目标平台 | 普遍 |
标头 | fltkernel.h (包括 Fltkernel.h) |
库 | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | <= APC_LEVEL |