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的 Type 成员不是NET_ROOT_MAILSLOT,则调用 RxFinishFcbInitialization 以完成 FCB 结构的初始化。

如果 MrxFcb 指向的 MRX_FCB 结构的 FcbState 成员没有打开FCB_STATE_TIME_AND_SIZE_ALREADY_SET,则如果 InitPacket 为非 NULL,将从 InitPacket 参数更新 FCB 的以下成员:AttributesNumberOfLinksCreationTimeLastAccessTimeLastWriteTimeLastChangeTimeActualAllocationLengthHeader.AllocationSizeHeader.FileSizeHeader.ValidDataLength。 然后,在 FCB 结构的 FcbState 成员中设置 FCB_STATE_TIME_AND_SIZE_ALREADY_SET 选项。

如果存储类型是RDBSS_NTC_MAILSLOT并且 FCB 的 FcbState 成员确实设置了FCB_STATE_TIME_AND_SIZE_ALREADY_SET选项,则邮件槽的 FCB 结构的以下成员将初始化为 0: AttributesNumberOfLinksCreationTime.QuadPartLastAccessTime.QuadPartLastWriteTime.QuadPartLastChangeTimeQuadPartActualAllocationLengthHeader.AllocationSize.QuadPartHeader.FileSize.QuadPartHeader.ValidDataLength.QuadPart

要求

要求
目标平台 桌面
标头 fcb.h (包括 Mrxfcb.h、Nodetype.h、Fcb.h)
IRQL <= APC_LEVEL

另请参阅

RxCreateNetFCB

RxCreateNetFobx

RxCreateNetRoot

RxCreateSrvCall

RxCreateSrvOpen

RxCreateVNetRoot

RxDereference

RxFinalizeConnection

RxFinalizeNetFcb

RxFinalizeNetFobx

RxFinalizeNetRoot

RxFinalizeSrvCall

RxFinalizeSrvOpen

RxFinalizeVNetRoot

RxForceFinalizeAllVNetRoots

RxReference

RxSetSrvCallDomainName

RxpDereferenceNetFcb

RxpReferenceNetFcb