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 不是不可部分完成的作業。 因此,呼叫此例程的驅動程式必須透過某種鎖定來保護傳遞至 IoSetShareAccess 的共用檔案物件,例如Mutex或資源鎖定,以避免共用存取計數損毀。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 從 Windows 2000 開始提供。 |
目標平台 | Universal |
標頭 | wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI 合規性規則 | HwStorPortProhibitedDIS (storport) 、 IrqlIoPassive5 (wdm) |