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 구조체에 대한 포인터입니다. 드라이버는 이 구조를 불투명으로 처리해야 합니다.

반환 값

None

설명

최상위 커널 모드 드라이버만 이 루틴을 호출해야 합니다. 호출은 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