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)

こちらもご覧ください

ACCESS_MASK

IoCheckShareAccess

IoCreateFile

IoCreateFileEx

IoGetFileObjectGenericMapping

IoGetRelatedDeviceObject

IoRemoveShareAccess

IoUpdateShareAccess