IRP_MJ_SET_SECURITY (FS 和篩選驅動程式)
傳送時
I/O 管理員會傳送IRP_MJ_SET_SECURITY要求。 例如,當使用者模式應用程式呼叫 Win32 函式,例如 SetSecurityInfo 時,可以傳送此要求。
作業:檔案系統驅動程式
文件系統驅動程式應該擷取和譯碼檔案物件,以判斷它是否代表使用者檔案或目錄開啟。 如果這樣做,驅動程式應該處理要求並完成 IRP。 否則,驅動程式應該適當地完成 IRP,而不需處理要求。
作業:舊版文件系統篩選驅動程式
篩選驅動程式應該會將此 IRP 向下傳遞至堆疊上的下一個較低驅動程式。
參數
文件系統或篩選驅動程式會針對指定的 IRP 呼叫 IoGetCurrentIrpStackLocation ,以取得 IRP 中本身堆疊位置的指標。 在下列參數中, Irp 指向 IRP , 而 IrpSp 指向 IO_STACK_LOCATION。 驅動程式可以使用 IRP 和 IRP 堆疊位置下列成員中設定的資訊,來處理設定的安全性資訊要求:
DeviceObject 是目標裝置物件的指標。
Irp->IoStatus 指向 IO_STATUS_BLOCK結構, 該結構會接收最終完成狀態和所要求作業的相關信息。
IrpSp->FileObject 指向與 DeviceObject 相關聯的檔案物件。
IrpSp-FileObject> 參數包含 RelatedFileObject 字段的指標,這也是FILE_OBJECT結構。 FILE_OBJECT 結構的 RelatedFileObject 字段在處理IRP_MJ_SET_SECURITY期間無效,不應使用。
IrpSp->MajorFunction 設定為 IRP_MJ_SET_SECURITY。
IrpSp->Parameters.SetSecurity.SecurityDescriptor 指向 SECURITY_DESCRIPTOR 結構,其中包含要指派給 對象的安全性資訊值。
IrpSp->Parameters.SetSecurity.SecurityInformation 是類型的值 ,SECURITY_INFORMATION 指定要在安全性描述元中設定的安全性資訊,而且可以是下列其中一個值。
SecurityInformation 值 | 意義 |
---|---|
DACL_SECURITY_INFORMATION | 表示正在設定物件的任意訪問控制清單 (DACL) 。 需要WRITE_DAC存取權。 |
GROUP_SECURITY_INFORMATION | 指出正在設定物件的主要群組標識碼。 需要WRITE_OWNER存取權。 |
OWNER_SECURITY_INFORMATION | 表示正在設定對象的擁有者標識碼。 需要WRITE_OWNER存取權。 |
SACL_SECURITY_INFORMATION | 表示正在設定對象的系統 ACL (SACL) 。 需要ACCESS_SYSTEM_SECURITY存取權。 |
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應