共用方式為


IO_DRIVER_CREATE_CONTEXT 結構 (ntddk.h)

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

IoCreateFileEx 例程是由舊版篩選驅動程式使用,而 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 成員) 函式做為 IoCreateFileExFltCreateFileEx2 例程的其他參數。 相對於 IoCreateFileExFltCreateFileEx2 例程的介面,下列資訊可能很有説明:

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

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

    如果使用 ECP,則必須使用適當的例程來建立、操作和釋放它們。 例如,迷你篩選驅動程式會使用 FltInsertExtraCreateParameter 例程,將 ECP 專案插入 ECP 清單中。 The following See Also section lists many of these required routines.

    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