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
指向调用方分配的缓冲区的指针,该缓冲区接收请求的卷属性信息。 如果输入时 Length 为零,则忽略此参数。 否则,此参数是必需的,不能为 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) |
Library | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | <= APC_LEVEL |