IoCheckLinkShareAccess 함수(wdm.h)

파일 개체에 대한 링크 공유 액세스가 허용되는지 여부를 검사 위해 FSD(파일 시스템 드라이버) 또는 기타 최상위 드라이버에서 IoCheckLinkShareAccess 루틴을 호출합니다.

구문

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 관리자 루틴

IoRemoveLinkShareAccess

IoSetLinkShareAccess

IoUpdateLinkShareAccess