IoSetShareAccess 関数 (wdm.h)
IoSetShareAccess ルーチンは、指定されたファイル オブジェクトを共有するためのアクセス権を設定します。
構文
void IoSetShareAccess(
[in] ACCESS_MASK DesiredAccess,
[in] ULONG DesiredShareAccess,
[in, out] PFILE_OBJECT FileObject,
[out] PSHARE_ACCESS ShareAccess
);
パラメーター
[in] DesiredAccess
FileObject に対して要求されるアクセスの種類を表すACCESS_MASK値を指定します。 システム定義の DesiredAccess フラグの完全な一覧については、「IoCreateFile」を参照してください。
[in] DesiredShareAccess
ファイル オブジェクトに設定する共有アクセスの種類を指定します。 この値には、0 または次の任意の組み合わせを指定できます。
FILE_SHARE_READ
FILE_SHARE_WRITE
FILE_SHARE_DELETE
[in, out] FileObject
共有アクセスが設定またはリセットされているファイル オブジェクトへのポインター。
[out] ShareAccess
FileObject に関連付けられているSHARE_ACCESS構造体へのポインター。 ドライバーは、この構造体を不透明として扱う必要があります。
戻り値
なし
解説
このルーチンを呼び出す必要があるのは、最上位レベルのカーネル モード ドライバーのみです。 呼び出しは、 FileObject を開こうとする最初のスレッドのコンテキストで発生する必要があります。
このルーチンは、 FileObject を最初に開いたときにアクセス情報と共有アクセス情報を設定します。 FileObject に関連付けられている共通の共有アクセス データ構造へのポインターを返します。 呼び出し元は、アクセスを更新するとき、またはファイルを閉じるときに後で使用するために、このポインターを保存する必要があります。
一般に、ファイル システム ドライバー (FSD) は、このルーチンを呼び出す可能性が最も高いです。 ただし、他の最上位レベルのドライバーは 、IoSetShareAccess を呼び出して、指定された FileObject に関連付けられているドライバーによって作成されたデバイス オブジェクトに対して許可されるアクセスの種類を制御できます。
IoSetShareAccess はアトミック操作ではありません。 したがって、このルーチンを呼び出すドライバーは、共有アクセス数の破損を防ぐために、ミューテックスやリソース ロックなどの何らかの種類のロックによって IoSetShareAccess に渡される共有ファイル オブジェクトを保護する必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 以降で使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI コンプライアンス規則 | HwStorPortProhibitedDDIs(storport), IrqlIoPassive5(wdm) |