RxFinishFcbInitialization function (fcb.h)

RxFinishFcbInitialization is used to finish initializing an FCB after the successful completion of a create operation by the network mini-redirector.

Syntax

void RxFinishFcbInitialization(
  IN OUT PMRX_FCB     Fcb,
  IN RX_FILE_TYPE     FileType,
  IN PFCB_INIT_PACKET InitPacket
);

Parameters

Fcb

A pointer to the MRX_FCB structure being initialized.

FileType

The value indicating the storage type of entity that the FCB refers to. Possible options for this parameter include the following:

Value Meaning
RDBSS_NTC_MAILSLOT A mail slot.
RDBSS_NTC_SPOOLFILE A printer spool file.
RDBSS_NTC_STORAGE_TYPE_DIRECTORY A directory.
RDBSS_NTC_STORAGE_TYPE_UNKNOWN The storage type is unknown.
RDBSS_NTC_STORAGE_TYPE_FILE A file.

InitPacket

Pointer to extra data that is required for initialization depending on the storage type of the FCB being initialized. This parameter may be a NULL pointer if no extra data is provided.

Return value

None

Remarks

When called as a result of an IRP_MJ_CREATE, RxCreateNetFCB is called first to create the FCB. If the Type member of the NET_ROOT to be created is not a NET_ROOT_MAILSLOT, then RxFinishFcbInitialization is called to finish the initialization of the FCB structure.

If the FcbState member of the MRX_FCB structure pointed to by MrxFcb does not have the FCB_STATE_TIME_AND_SIZE_ALREADY_SET on, then the following members of the FCB will be updated from the InitPacket parameter if InitPacket is non NULL: Attributes, NumberOfLinks, CreationTime, LastAccessTime, LastWriteTime, LastChangeTime, ActualAllocationLength, Header.AllocationSize, Header.FileSize, and Header.ValidDataLength. The FCB_STATE_TIME_AND_SIZE_ALREADY_SET option is then set on in the FcbState member of the FCB structure.

If the storage type is an RDBSS_NTC_MAILSLOT and the FcbState member of the FCB does have the FCB_STATE_TIME_AND_SIZE_ALREADY_SET option set on, then the following members of the FCB structure for the mail slot will be initialized to 0: Attributes, NumberOfLinks, CreationTime.QuadPart, LastAccessTime.QuadPart, LastWriteTime.QuadPart, LastChangeTime.QuadPart, ActualAllocationLength, Header.AllocationSize.QuadPart, Header.FileSize.QuadPart, and Header.ValidDataLength.QuadPart

Requirements

Requirement Value
Target Platform Desktop
Header fcb.h (include Mrxfcb.h, Nodetype.h, Fcb.h)
IRQL <= APC_LEVEL

See also

RxCreateNetFCB

RxCreateNetFobx

RxCreateNetRoot

RxCreateSrvCall

RxCreateSrvOpen

RxCreateVNetRoot

RxDereference

RxFinalizeConnection

RxFinalizeNetFcb

RxFinalizeNetFobx

RxFinalizeNetRoot

RxFinalizeSrvCall

RxFinalizeSrvOpen

RxFinalizeVNetRoot

RxForceFinalizeAllVNetRoots

RxReference

RxSetSrvCallDomainName

RxpDereferenceNetFcb

RxpReferenceNetFcb