MRxCreate ルーチン

MRxCreate ルーチンは、ネットワーク ミニ リダイレクターがファイル システム オブジェクトを作成するように要求するために、RDBSS によって呼び出されます。

構文

PMRX_CALLDOWN MRxCreate;

NTSTATUS MRxCreate(
  _Inout_ PRX_CONTEXT RxContext
)
{ ... }

パラメーター

RxContext [in, out]
RX_CONTEXT 構造体へのポインター。 このパラメータには、操作を要求している IRP が含まれます。

戻り値

MRxCreate は、成功した場合は STATUS_SUCCESS を返すか、次のいずれかのような適切な NTSTATUS 値を返します。

リターン コード 説明
STATUS_INSUFFICIENT_RESOURCES

操作を完了するにはリソースが不足していました。

STATUS_NETWORK_ACCESS_DENIED

ネットワークアクセスが拒否されました。 このエラーは、ネットワーク ミニリダイレクターが読み取り専用共有上で新しいファイルを開くように要求された場合に返されることがあります。

STATUS_NOT_IMPLEMENTED

リモート ブートやリモート ページ ファイルなど、要求された機能が実装されていません。

STATUS_NOT_SUPPORTED

拡張属性など、要求された機能はサポートされていません。

STATUS_OBJECT_NAME_COLLISION

ネットワーク ミニリダイレクターは、既に存在するファイルを作成するように要求されました。

STATUS_OBJECT_NAME_NOT_FOUND

オブジェクト名が見つかりませんでした。 ネットワーク ミニ リダイレクターが存在しないファイルを開くように求められた場合に、このエラーが返される可能性があります。

STATUS_OBJECT_PATH_NOT_FOUND

オブジェクトのパスが見つかりませんでした。 このエラーは、NTFS ストリーム オブジェクトが要求され、リモート ファイル システムがストリームをサポートしていない場合に返される可能性があります。

STATUS_REPARSE

シンボリック リンクを処理するには再解析が必要です。

STATUS_RETRY

操作を再試行する必要があります。 このエラーは、ネットワーク ミニリダイレクターで共有違反またはアクセス拒否エラーが発生した場合に返されることがあります。

解説

MRxCreate は RDBSS によって呼び出され、ネットワーク ミニリダイレクターがネットワーク全体でファイル システム オブジェクトを開くように要求します。 この呼び出しは、IRP_MJ_CREATE リクエスト。

MRxCreate を呼び出す前に、RDBSS は RxContext パラメーターが指す RX_CONTEXT 構造体内の次のメンバーを変更します。

pRelevantSrvOpenSRV_OPEN 構造体に設定されます。

Create.pSrvCallSRV_CALL 構造体に設定されます。

Create.NtCreateParameters 要求された NT_CREATE_PARAMETERS に設定されます。

ネットワーク ミニリダイレクターのコンテキストでは、ファイル オブジェクトは、関連するファイル制御ブロック (FCB) およびファイル オブジェクト拡張子 (FOBX) 構造を指します。 ファイルオブジェクトと FOBX の間には 1 対 1 の対応関係があります。 多くのファイル オブジェクトは、リモート サーバー上の単一のファイルを表す同じ FCB を参照します。 クライアントは同じ FCB 上で複数の異なるオープン リクエスト (NtCreateFile リクエスト) を持つことができ、それぞれが新しいファイル オブジェクトを作成します。 RDBSS とネットワーク ミニ リダイレクターは、受信した NtCreateFile 要求よりも少ない MRxCreate 要求を送信することを選択し、複数の FOBX 間でSRV_OPEN構造を共有します。

もしMRxCreate リクエストはファイルの上書きであり、MRxCreate STATUS_SUCCESS が返された場合、RDBSS はページング I/O リソースを取得し、ファイルを切り詰めます。 ファイルがキャッシュ マネージャーによってキャッシュされている場合、RDBSS はキャッシュ マネージャーのサイズをサーバーから受信したばかりのサイズで更新します。

戻る前に、MRxCreateRxContext パラメーターが指す RX_CONTEXT 構造体の CurrentIrp->IoStatus.Information メンバーを設定する必要があります。

要件

対象プラットフォーム

デスクトップ

ヘッダー

Mrx.h (Mrx.h を含む)

関連項目

MRxAreFilesAliased

MRxCleanupFobx

MRxCloseSrvOpen

MRxCollapseOpen

MRxCreate

MRxDeallocateForFcb

MRxDeallocateForFobx

MRxExtendForCache

MRxExtendForNonCache

MRxFlush

MRxForceClosed

MRxIsLockRealizable

MRxShouldTryToCollapseThisOpen

MRxTruncate

MRxZeroExtend