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 の次のメンバーが更新されます。Attributes、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 に初期化されます: Attributes、 NumberOfLinks、 CreationTime.QuadPart、 LastAccessTime.QuadPart、 LastWriteTime.QuadPart、 LastChangeTime。QuadPart、 ActualAllocationLength、 Header.AllocationSize.QuadPart、 Header.FileSize.QuadPart、 Header.ValidDataLength.QuadPart
要件
要件 | 値 |
---|---|
対象プラットフォーム | デスクトップ |
Header | fcb.h (Mrxfcb.h、Nodetype.h、Fcb.h を含む) |
IRQL | <= APC_LEVEL |