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

현재 열린 요청에 대한 파일 개체에 대한 공유 액세스의 원하는 형식을 지정합니다. 이 매개 변수의 값은 일반적으로 파일 시스템에 전달되는 ShareAccess 매개 변수 또는 열려 있는 요청이 있을 때 I/O 관리자에 의해 최상위 드라이버와 동일합니다. 이 값은 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