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 |