次の方法で共有


IoCheckLinkShareAccess 関数 (wdm.h)

IoCheckLinkShareAccess ルーチンは、ファイル システム ドライバー (FSD) またはその他の最上位レベルのドライバーによって呼び出され、ファイル オブジェクトへのリンク共有アクセスが許可されているかどうかを確認します。

構文

NTSTATUS IoCheckLinkShareAccess(
  [in]                ACCESS_MASK        DesiredAccess,
  [in]                ULONG              DesiredShareAccess,
  [in, out, optional] PFILE_OBJECT       FileObject,
  [in, out, optional] PSHARE_ACCESS      ShareAccess,
  [in, out, optional] PLINK_SHARE_ACCESS LinkShareAccess,
  [in]                ULONG              IoShareAccessFlags
);

パラメーター

[in] DesiredAccess

指定したファイル オブジェクトへのアクセスの目的の種類を示す ACCESS_MASK 値を指定します。

[in] DesiredShareAccess

現在開いている要求のファイル オブジェクトへの共有アクセスの目的の種類を指定します。 このパラメーターの値は、通常、開いている要求が行われたときに I/O マネージャーによってファイル システムまたは最上位レベルのドライバーに渡される ShareAccess パラメーターと同じです。 この値には、0 または次の任意の組み合わせを指定できます。

FILE_SHARE_READ

FILE_SHARE_WRITE

FILE_SHARE_DELETE

[in, out, optional] FileObject

現在開いている要求のアクセスを確認する対象のファイル オブジェクトへのポインター。

[in, out, optional] ShareAccess

FileObjectに関連付けられている共通の共有アクセス データ構造へのポインター。 ドライバーは、この構造体を不透明として扱う必要があります。

[in, out, optional] LinkShareAccess

FileObject に関連付けられている共通リンク共有アクセス データ構造 (LINK_SHARE_ACCESS)へのポインター。 ドライバーは、この構造体を不透明として扱う必要があります。

[in] IoShareAccessFlags

これらのフラグのビットマスク:

IO_SHARE_ACCESS_NO_WRITE_PERMISSION (0x80000000) は、ユーザーがファイルに対する書き込みアクセス許可を持たないことを指定します。 このフラグは、ユーザーが適切なアクセス許可を持っていない場合に排他読み取りアクセス用にファイルを開かないようにするために使用されます。

IO_SHARE_ACCESS_NON_PRIMARY_STREAM (0x00000080) は、ストリームがプライマリ データ ストリームでもディレクトリ ストリームでもないことを指定します。

IO_CHECK_SHARE_ACCESS_UPDATE_SHARE_ACCESS (0x00000001) は、SHARE_ACCESS 構造体が更新されるかどうかを示します。

IO_CHECK_SHARE_ACCESS_DONT_UPDATE_FILE_OBJECT (0x00000002) は、FILE_OBJECT 構造体を更新しないことを示します。

IO_CHECK_SHARE_ACCESS_DONT_CHECK_READ (0x00000004) は、読み取り共有アクセスを確認しないことを示します。

IO_CHECK_SHARE_ACCESS_DONT_CHECK_WRITE (0x00000008) は、書き込み共有アクセスを確認しないことを示します。

IO_CHECK_SHARE_ACCESS_DONT_CHECK_DELETE (0x00000010) は、共有アクセスの削除を確認しないことを示します。

IO_CHECK_SHARE_ACCESS_FORCE_CHECK (0x00000020) は、要求が読み取り/書き込み/削除アクセスでない場合でも、共有アクセスを強制的にチェックすることを示します。

IO_CHECK_SHARE_ACCESS_FORCE_USING_SCB (0x00000040) は、LinkShareAccess が存在するかどうかに関係なく、ShareAccess を使用して共有アクセスを強制的に削除することを示します。

戻り値

IoCheckLinkShareAccess ルーチンは、要求者のファイル オブジェクトへのアクセスが現在開かれている方法と互換性がある場合に、STATUS_SUCCESSを返します。 共有違反が原因で要求が拒否された場合は、STATUS_SHARING_VIOLATIONが返されます。

備考

ShareAccess パラメーターは、このルーチンの実行中に、他のスレッドからの他のアクセスに対してロックする必要があります。 それ以外の場合は、カウントを同期できます。

必要条件

要件 価値
サポートされる最小クライアント Windows 10 バージョン 1709
サポートされる最小サーバー Windows Server 2016
ターゲット プラットフォーム 万国
ヘッダー wdm.h
ライブラリ Ntoskrnl.lib

関連項目

I/O Manager ルーチンの

IoRemoveLinkShareAccess

IoSetLinkShareAccess

IoUpdateLinkShareAccess