다음을 통해 공유


IoSetShareAccess 함수(wdm.h)

IoSetShareAccess 루틴은 지정된 파일 개체를 공유하기 위한 액세스 권한을 설정합니다.

통사론

VOID IoSetShareAccess(
  [in]      ACCESS_MASK   DesiredAccess,
  [in]      ULONG         DesiredShareAccess,
  [in, out] PFILE_OBJECT  FileObject,
  [out]     PSHARE_ACCESS ShareAccess
);

매개 변수

[in] DesiredAccess

FileObject요청된 액세스 유형을 나타내는 ACCESS_MASK 값을 지정합니다. 시스템 정의 DesiredAccess 플래그의 전체 목록은 IoCreateFile 참조하세요.

[in] DesiredShareAccess

파일 개체에 대해 설정할 공유 액세스 유형을 지정합니다. 이 값은 0이거나 다음의 조합일 수 있습니다.

FILE_SHARE_READ

FILE_SHARE_WRITE

FILE_SHARE_DELETE

[in, out] FileObject

공유 액세스가 설정되거나 다시 설정되는 파일 개체에 대한 포인터입니다.

[out] ShareAccess

FileObject연결된 SHARE_ACCESS 구조체에 대한 포인터입니다. 드라이버는 이 구조를 불투명한 것으로 처리해야 합니다.

반환 값

없음

발언

최고 수준의 커널 모드 드라이버만 이 루틴을 호출해야 합니다. 호출은 FileObject열려고 시도하는 첫 번째 스레드의 컨텍스트에서 발생해야 합니다.

이 루틴은 FileObject 처음 열 때 액세스 및 공유 액세스 정보를 설정합니다. FileObject연결된 공통 공유 액세스 데이터 구조에 대한 포인터를 반환합니다. 호출자는 액세스를 업데이트하거나 파일을 닫을 때 나중에 사용할 수 있도록 이 포인터를 저장해야 합니다.

일반적으로 FSD(파일 시스템 드라이버)는 이 루틴을 호출할 가능성이 높습니다. 그러나 다른 최상위 수준의 드라이버는 IoSetShareAccess 호출하여 지정된 FileObject연결된 드라이버에서 만든 디바이스 개체에 허용되는 액세스 종류를 제어할 수 있습니다.

IoSetShareAccess 원자성 작업이 아닙니다. 따라서 이 루틴을 호출하는 드라이버는 공유 액세스 수의 손상을 방지하기 위해 뮤텍스 또는 리소스 잠금과 같은 일종의 잠금을 통해 IoSetShareAccess 전달된 공유 파일 개체를 보호해야 합니다.

요구 사항

요구
지원되는 최소 클라이언트 Windows 2000부터 사용할 수 있습니다.
대상 플랫폼 보편적
헤더 wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 규정 준수 규칙 HwStorPortProhibitedDDIs(storport), IrqlIoPassive5(wdm)

참고 항목

ACCESS_MASK

IoCheckShareAccess

IoCreateFile

IoCreateFileEx

IoGetFileObjectGenericMapping

IoGetRelatedDeviceObject

IoRemoveShareAccess

IoUpdateShareAccess