RxFinishFcbInitialization 函数 (fcb.h)
RxFinishFcbInitialization 用于在网络微型重定向程序成功完成创建作后完成 FCB 初始化。
语法
void RxFinishFcbInitialization(
IN OUT PMRX_FCB Fcb,
IN RX_FILE_TYPE FileType,
IN PFCB_INIT_PACKET InitPacket
);
参数
Fcb
指向要初始化MRX_FCB结构的指针。
FileType
指示 FCB 引用的实体的存储类型的值。 此参数的可能选项包括:
价值 | 意义 |
---|---|
RDBSS_NTC_MAILSLOT | 邮件槽。 |
RDBSS_NTC_SPOOLFILE | 打印机后台处理程序文件。 |
RDBSS_NTC_STORAGE_TYPE_DIRECTORY | 目录。 |
RDBSS_NTC_STORAGE_TYPE_UNKNOWN | 存储类型未知。 |
RDBSS_NTC_STORAGE_TYPE_FILE | 文件。 |
InitPacket
指向初始化所需的额外数据的指针,具体取决于要初始化的 FCB 的存储类型。 如果没有提供额外的数据,此参数可能是 NULL 指针。
返回值
没有
言论
由于IRP_MJ_CREATE调用,首先调用 RxCreateNetFCB 来创建 FCB。 如果要创建的NET_ROOT的 类型 成员不是NET_ROOT_MAILSLOT,则调用 RxFinishFcbInitialization 以完成 FCB 结构的初始化。
如果 MrxFcb 指向的MRX_FCB结构的 FcbState 成员没有FCB_STATE_TIME_AND_SIZE_ALREADY_SET,则如果 InitPacket 非 NULL,则 FCB 的以下成员将从 InitPacket 参数更新:属性, NumberOfLinks、CreationTime、LastAccessTime、LastWriteTime、LastChangeTime、ActualAllocationLength、Header.AllocationSize、Header.FileSize和 Header.ValidDataLength。 然后在 FCB 结构的 FcbState 成员中设置FCB_STATE_TIME_AND_SIZE_ALREADY_SET选项。
如果存储类型为RDBSS_NTC_MAILSLOT,并且 FCB 的 FcbState 成员设置了FCB_STATE_TIME_AND_SIZE_ALREADY_SET选项,则邮件槽的 FCB 结构的以下成员将初始化为 0:属性、NumberOfLinks、CreationTime.QuadPart、LastAccessTime.QuadPart, LastWriteTime.QuadPart,LastChangeTime。QuadPart、ActualAllocationLength、Header.AllocationSize.QuadPart、Header.FileSize.QuadPart和 Header.ValidDataLength.QuadPart
要求
要求 | 价值 |
---|---|
目标平台 | 桌面 |
标头 | fcb.h(包括 Mrxfcb.h、Nodetype.h、Fcb.h) |
IRQL | <= APC_LEVEL |