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 |