MRxSetFileInfoAtCleanup 例程
RDBSS 调用 MRxSetFileInfoAtCleanup 例程,请求网络微型重定向程序在清理时设置文件系统对象上的文件信息。
语法
PMRX_CALLDOWN MRxSetFileInfoAtCleanup;
NTSTATUS MRxSetFileInfoAtCleanup(
_Inout_ PRX_CONTEXT RxContext
)
{ ... }
参数
RxContext [in, out]
指向RX_CONTEXT结构的指针。 此参数包含请求操作的 IRP。
返回值
MRxSetFileInfoAtCleanup 在成功时返回STATUS_SUCCESS或相应的 NTSTATUS 值。
注解
当文件对象的最后一个句柄关闭时,RDBSS 在清理期间发出对 MRxSetFileInfoAtCleanup 的调用。 这与删除对文件对象的最后一次引用时调用的关闭操作不同。
如果文件上的时间戳或文件大小已更改,RDBSS 将调用 MRxSetFileInfoAtCleanup。 RDBSS 对 MRxSetFileInfoAtCleanup 的调用是针对其中每项更改单独进行的。 如果文件大小和时间戳都已更改,则 RDBSS 对 MRxSetFileInfoAtCleanup 进行两次调用。
在调用 MRxSetFileInfoAtCleanup 之前,如果文件的时间戳已更改,RDBSS 会修改 RxContext 参数指向的 RX_CONTEXT 结构中的以下成员:
Info.FileInformationClass 成员设置为 FileBasicInformation FILE_INFORMATION_CLASS值。
Info.Buffer 成员设置为在堆栈上分配的FILE_BASIC_INFORMATION结构。
Info.Length 成员设置为FILE_BASIC_INFORMATION结构的大小。
在调用 MRxSetFileInfoAtCleanup 之前,如果文件大小已更改,RDBSS 会修改 RxContext 参数指向的RX_CONTEXT结构中的以下成员:
Info.FileInformationClass 成员设置为 FileEndOfFileInformation FILE_INFORMATION_CLASS值。
Info.Buffer 成员设置为在堆栈上分配的FILE_END_OF_FILE_INFORMATION结构。
Info.Length 成员设置为 sizeof (FILE_END_OF_FILE_INFORMATION ) 。
RDBSS 忽略 MRxSetFileInfoAtCleanup 中的返回值。
网络微型重定向程序可以选择在此例程中不执行任何操作,并返回STATUS_SUCCESS。 对文件大小或时间戳的任何更改都将在清理操作期间进行处理。
要求
目标平台 |
桌面 |
标头 |
Mrx.h (包括 Mrx.h) |