共用方式為


IO_DRIVER_CREATE_CONTEXT結構 (ntddk.h)

IO_DRIVER_CREATE_CONTEXT 結構可用來將其他參數傳遞至 IoCreateFileExFltCreateFileEx2 例程。 此結構是選擇性的。

舊版篩選驅動程式會使用 IoCreateFileEx 例程,而minifilter驅動程式會使用 FltCreateFileEx2 例程。

語法

typedef struct _IO_DRIVER_CREATE_CONTEXT {
  CSHORT               Size;
  struct _ECP_LIST     *ExtraCreateParameter;
  PVOID                DeviceObjectHint;
  PTXN_PARAMETER_BLOCK TxnParameters;
  PESILO               SiloContext;
} IO_DRIVER_CREATE_CONTEXT, *PIO_DRIVER_CREATE_CONTEXT;

成員

Size

IoInitializeDriverCreateContext 例程初始化的唯讀成員。

ExtraCreateParameter

ECP_LIST 結構的指標,其中包含額外的建立參數 (ECP) 項目清單。 如需重要資訊,請參閱下列 < 備註> 一節。

DeviceObjectHint

如果使用IO_DRIVER_CREATE_CONTEXT將其他建立參數傳遞至 FltCreateFileEx2 例程,則必須將這個成員 NULL

如果使用IO_DRIVER_CREATE_CONTEXT將其他建立參數傳遞至 IoCreateFileEx 例程,則此成員是將建立要求傳送至裝置物件的指標。 裝置物件必須是檔案或目錄所在磁碟區之文件系統驅動程式堆疊中的舊版篩選或檔系統裝置物件。 在 IoCreateFileEx 案例中,此參數是選擇性的,而且可以 NULL。 如果此參數 NULL,則要求會傳送至驅動程式堆疊頂端的裝置物件。

TxnParameters

您想要與建立作業建立關聯的交易指標。 如果這個成員的值是交易的有效指標,則建立作業將會是交易的一部分。 如果這個成員的值 NULL,則建立作業將不會是交易的一部分。

SiloContext

檔案所在的容器。 此成員是在 Windows 10 版本 1607 中引進的。

言論

IO_DRIVER_CREATE_CONTEXT結構可以從分頁或非分頁集區配置。 IoInitializeDriverCreateContext 例程必須先初始化IO_DRIVER_CREATE_CONTEXT結構,才能使用 結構。

IO_DRIVER_CREATE_CONTEXT結構的成員(不包括 Size 成員)會作為IoCreateFileEx 和 FltCreateFileEx2 例程的其他 參數。 相對於 IoCreateFileExFltCreateFileEx2 例程的介面,下列資訊可能很有説明:

  • ECP_LIST結構包含額外的建立參數 (ECP) 專案清單。 ECP 清單中的每個 ECP 專案 ECP_LIST (ECP 內容結構) 都會作為額外的 create 參數,IoCreateFileExFltCreateFileEx2

    若要將 ECP 指定為建立作業的一部分,請使用正確的例程,初始化 IO_DRIVER_CREATE_CONTEXT 結構 成員 ExtraCreateParameter:

    如果使用 ECP,則必須使用適當的例程來建立、操作和釋放它們。 例如,迷你篩選驅動程式會使用 FltInsertExtraCreateParameter 例程,將 ECP 專案插入 ECP 清單中。 下列 另請參閱 一節列出其中許多必要的例程。

    從呼叫 IoCreateFileExFltCreateFileEx2傳回時,ECP 清單會保持不變,而且可以傳遞至其他 IoCreateFileExFltCreateFileEx2 呼叫新的建立作業。

  • 若要在交易內容中建立或開啟檔案,請將IO_DRIVER_CREATE_CONTEXT結構 TxnParameters 成員設定為 ioGetTransactionParameterBlock 例程所傳回的值。

要求

要求 價值
標頭 ntddk.h (包括 Ntddk.h、Ntifs.h、Fltkernel.h)

另請參閱

ECP_LIST

FltAllocateExtraCreateParameterFromLookasideList

FltAllocateExtraCreateParameterList

FltCreateFileEx2

FltFreeExtraCreateParameter

FltFreeExtraCreateParameterList

FltGetEcpListFromCallbackData

FltInsertExtraCreateParameter

FltRemoveExtraCreateParameter

FltSetEcpListIntoCallbackData

FsRtlAllocateExtraCreateParameterList

FsRtlFreeExtraCreateParameterList

IoCreateFileEx

IoCreateFileSpecifyDeviceObjectHint

IoGetTransactionParameterBlock

IoInitializeDriverCreateContext