IRP_MJ_SET_EA (FS 和篩選驅動程式)

傳送時

I/O 管理員會傳送IRP_MJ_SET_EA要求來設定檔案的擴充屬性。

作業:檔案系統驅動程式

如果文件系統支援擴充屬性,檔案系統驅動程式應該處理要求並完成 IRP。 否則,文件系統驅動程式應該會 傳回STATUS_EAS_NOT_SUPPORTED

作業:舊版文件系統篩選驅動程式

篩選驅動程式應該會將此 IRP 向下傳遞至堆疊上的下一個較低驅動程式。

參數

文件系統或篩選驅動程式會針對指定的 IRP 呼叫 IoGetCurrentIrpStackLocation ,以取得 IRP 中本身堆疊位置的指標。 在下列參數中, Irp 指向 IRP而 IrpSp 指向 IO_STACK_LOCATION。 驅動程式可以使用下列 IRP 成員中設定的資訊,以及 IRP 堆疊位置中設定的資訊,來處理一組擴充屬性要求:

  • DeviceObject 是目標裝置物件的指標。

  • Irp->AssociatedIrp.SystemBuffer 指向系統提供的輸入緩衝區,其中包含要設定的擴充屬性資訊。 用於METHOD_BUFFERED I/O。

  • Irp->IoStatus 指向 IO_STATUS_BLOCK結構, 該結構會接收最終完成狀態和所要求作業的相關信息。

  • Irp->MdlAddress 是記憶體描述項清單的位址, (MDL) 描述接收擴充屬性資訊的輸入緩衝區。 用於METHOD_DIRECT I/O。

  • Irp->UserBuffer 指向接收擴充屬性資訊的呼叫端提供 FILE_FULL_EA_INFORMATION結構化輸入緩衝區。 用於METHOD_NEITHER I/O。

  • IrpSp->FileObject 指向與 DeviceObject 相關聯的檔案物件。

    IrpSp-FileObject> 參數包含 RelatedFileObject 字段的指標,這也是FILE_OBJECT結構。 FILE_OBJECT 結構的 RelatedFileObject 字段在處理IRP_MJ_SET_EA期間無效,不應使用。

  • IrpSp->MajorFunction 設定為 IRP_MJ_SET_EA。

  • IrpSp->Parameters.SetEa.Length 是輸入緩衝區的位元組長度。

另請參閱

FILE_FULL_EA_INFORMATION

IO_STACK_LOCATION

IO_STATUS_BLOCK

IoCheckEaBufferValidity

IoGetCurrentIrpStackLocation

IRP

IRP_MJ_QUERY_EA