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 |
対象プラットフォーム | ユニバーサル |
Header | ntifs.h (Ntifs.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | < DISPATCH_LEVEL |