共用方式為


IoSetShareAccess 函式 (wdm.h)

IoSetShareAccess 例程會設定共用指定檔案物件的訪問許可權。

語法

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

參數

[in] DesiredAccess

指定 ACCESS_MASK 值,表示 FileObject所要求的存取類型。 如需系統定義 DesiredAccess 旗標的完整清單,請參閱 IoCreateFile

[in] DesiredShareAccess

指定要為檔案物件設定的共用存取類型。 此值可以是零,或下列任何組合:

FILE_SHARE_READ

FILE_SHARE_WRITE

FILE_SHARE_DELETE

[in, out] FileObject

正在設定或重設共用存取權之檔案物件的指標。

[out] ShareAccess

與 FileObject 相關聯之SHARE_ACCESS 結構的指標。 驅動程式應將此結構視為不透明。

傳回值

沒有

言論

只有最高層級的核心模式驅動程序應該呼叫此例程。 呼叫必須發生在嘗試開啟 fileObject 的第一個線程內容中。

當第一次開啟 fileObject 時,此例程會設定存取和共用存取資訊。 它會傳回與 fileObject 相關聯之通用共用存取數據結構的指標。 呼叫端應該儲存此指標,以供稍後在更新存取權或關閉檔案時使用。

一般而言,文件系統驅動程式 (FSD) 最有可能呼叫此例程。 不過,其他最高層級驅動程式可以呼叫 IoSetShareAccess,以控制與指定 之 fileObject相關聯的驅動程式建立裝置物件所允許的存取類型。

IoSetShareAccess 不是不可部分完成的作業。 因此,呼叫此例程的驅動程式必須透過某種鎖定,例如 Mutex 或資源鎖定,保護傳遞至 IoSetShareAccess 的共用檔案物件,以防止共用存取計數損毀。

要求

要求 價值
最低支援的用戶端 從 Windows 2000 開始提供。
目標平臺 普遍
標頭 wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h)
連結庫 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 合規性規則 HwStorPortProhibitedDIs(storport)IrqlIoPassive5(wdm)

另請參閱

ACCESS_MASK

IoCheckShareAccess

IoCreateFile

IoCreateFileEx

IoGetFileObjectGenericMapping

IoGetRelatedDeviceObject

IoRemoveShareAccess

IoUpdateShareAccess