共用方式為


將 ECP 附加至核心模式驅動程式產生的IRP_MJ_CREATE作業

您必須遵循下列步驟來設定 ECP,並將 ECP 附加至檔案上的 IRP_MJ_CREATE 作業:

  1. 呼叫 FltAllocateExtraCreateParameterListFsRtlAllocateExtraCreateParameterList 來配置 ECP_LIST 結構的記憶體。 操作系統不會自動釋放 ECP_LIST 結構。 相反地,minifilter 驅動程式最終必須呼叫 FltFreeExtraCreateParameterListFsRtlFreeExtraCreateParameterList ,以解除配置 給ECP_LIST的記憶體。

  2. 呼叫 FltAllocateExtraCreateParameterFsRtlAllocateExtraCreateParameter 來配置 ECP 內容結構的分頁記憶體集區,併產生該結構的指標。

  3. 呼叫 FltInsertExtraCreateParameterFsRtlInsertExtraCreateParameter ,將 ECP 內容結構插入 ECP_LIST 結構。

  4. 呼叫 IoInitializeDriverCreateContext 以初始化 IO_DRIVER_CREATE_CONTEXT 結構。

  5. 定義 IO_DRIVER_CREATE_CONTEXT 結構。 在此定義中,將 IO_DRIVER_CREATE_CONTEXT的 ExtraCreateParameter 成員指向ECP_LIST 結構。

  6. 呼叫 FltCreateFileEx2IoCreateFileEx ,將 ECP 附加至檔案上的 IRP_MJ_CREATE 作業。 在此呼叫中,將指標傳遞至 driverContext 參數IO_DRIVER_CREATE_CONTEXT結構。

  7. 呼叫 FltFreeExtraCreateParameterListFsRtlFreeExtraCreateParameterList 以釋放 ECP_LIST 結構。 這些函式也會自動釋放任何剩餘的ECP清單元素。