次の方法で共有


IoCreateStreamFileObjectLite 関数 (ntifs.h)

IoCreateStreamFileObjectLite ルーチンは、新しいストリーム ファイル オブジェクトを作成しますが、IRP_MJ_CLEANUP要求がファイル システム ドライバー スタックに送信されることはありません。

構文

PFILE_OBJECT IoCreateStreamFileObjectLite(
  [in, optional] PFILE_OBJECT   FileObject,
  [in, optional] PDEVICE_OBJECT DeviceObject
);

パラメーター

[in, optional] FileObject

新しいストリーム ファイルが関連付けられているファイル オブジェクトへのポインター。 このパラメーターは省略可能であり、NULL できます。

[in, optional] DeviceObject

ストリーム ファイルを開くデバイスのデバイス オブジェクトへのポインター。 呼び出し元が FileObject に対して非NULL指定した場合、DeviceObject の値は無視されます。 それ以外の場合、呼び出し元は、DeviceObjectに対して、以外の NULL 値を指定する必要があります。

戻り値

IoCreateStreamFileObjectLite は、新しく作成されたストリーム ファイル オブジェクトへのポインターを返します。

備考

ファイル システム IoCreateStreamFileObjectLite を呼び出して、新しいストリーム ファイル オブジェクトを作成します。 ストリーム ファイル オブジェクト は、FO_STREAM_FILE ファイル オブジェクト フラグが設定されている点を除き、通常のファイル オブジェクトと同じです。

ストリーム ファイル オブジェクトは、ファイル システムによってマウントされたボリュームの内部ストリームを表すために一般的に使用されます。 この 仮想ボリューム ファイル を使用すると、ファイル システムは、通常のファイルであるかのように、ボリュームのディスク上の構造を表示、変更、およびキャッシュできます。 この場合、IoCreateStreamFileObjectLite の呼び出しの DeviceObject パラメーターは、ボリュームのボリューム デバイス オブジェクト (VDO) を指定します。

ストリーム ファイル オブジェクトを使用して、既に開いているファイルの拡張属性やセキュリティ記述子などのメタデータにアクセスするための代替データ ストリームを表すこともできます。 この場合、IoCreateStreamFileObjectLite の呼び出しの FileObject パラメーターは、ファイルの既存のファイル オブジェクトを指定します。 新しく作成されたストリーム ファイル オブジェクトを使用すると、ファイル システムは通常のファイルであるかのようにファイルのメタデータを表示、変更、およびキャッシュできます。

ストリーム ファイル オブジェクトが不要になったら、呼び出し元は ObDereferenceObject 呼び出して、参照カウントをデクリメントする必要があります。 ストリーム ファイル オブジェクトの参照カウントが 0 に達すると、ボリュームのファイル システム ドライバー スタックにIRP_MJ_CLOSE要求が送信されます。

ファイル システム フィルター ドライバーライターは、IoCreateStreamFileObject とは異なり、IoCreateStreamFileObjectLite とは異なり、IRP_MJ_CLEANUP要求がファイル システム ドライバー スタックに送信されないことに注意する必要があります。 このため、ファイル システムは、多くの場合、IRP_MJ_CREATE以外の操作の副作用としてストリーム ファイル オブジェクトを作成するため、ストリーム ファイル オブジェクトの作成を確実に検出するフィルター ドライバーが困難です。 したがって、フィルター ドライバーは、以前に見えないファイル オブジェクトのIRP_MJ_CLOSE要求を受け取る必要があります。

プールの割り当てエラーが発生した場合、IoCreateStreamFileObjectLite STATUS_INSUFFICIENT_RESOURCES例外が発生します。

必要条件

要件 価値
サポートされる最小クライアント Windows 2000
ターゲット プラットフォーム 万国
ヘッダー ntifs.h (Ntifs.h を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe
IRQL < DISPATCH_LEVEL

関連項目

IRP_MJ_CLEANUP

IRP_MJ_CLOSE

IRP_MJ_CREATE

IoCreateStreamFileObject

IoCreateStreamFileObjectEx

ObDereferenceObject