IO_DRIVER_CREATE_CONTEXT - NtDoc

Native API online documentation, based on the System Informer (formerly Process Hacker) phnt headers
// ntddk.h

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;

View the official Windows Driver Kit DDI reference

NtDoc

No description available.

Windows Driver Kit DDI reference (ns-ntddk-_io_driver_create_context)

Description

The IO_DRIVER_CREATE_CONTEXT structure is used to pass additional parameters to the IoCreateFileEx and FltCreateFileEx2 routines. This structure is optional.

The IoCreateFileEx routine is used by legacy filter drivers and the FltCreateFileEx2 routine is used by minifilter drivers.

Members

Size

A read-only member initialized by the IoInitializeDriverCreateContext routine.

ExtraCreateParameter

A pointer to an ECP_LIST structure, which contains a list of extra create parameter (ECP) entries. See the following Remarks section for important information.

DeviceObjectHint

If IO_DRIVER_CREATE_CONTEXT is being used to pass additional create parameters to the FltCreateFileEx2 routine, this member must be NULL.

If IO_DRIVER_CREATE_CONTEXT is being used to pass additional create parameters to the IoCreateFileEx routine, this member is a pointer to the device object to which the create request will be sent. The device object must be a legacy filter or file system device object in the file system driver stack for the volume on which the file or directory resides. In the IoCreateFileEx case, this parameter is optional and can be NULL. If this parameter is NULL, the request will be sent to the device object at the top of the driver stack.

TxnParameters

A pointer to a transaction that you want to associate with the create operation. The create operation will be part of the transaction if the value of this member is a valid pointer to the transaction. If the value of this member is NULL, the create operation will not be part of a transaction.

SiloContext

The container that the file resides on. This member was introduced in Windows 10, version 1607.

Remarks

The IO_DRIVER_CREATE_CONTEXT structure can be allocated from paged or nonpaged pool. The IoInitializeDriverCreateContext routine must initialize the IO_DRIVER_CREATE_CONTEXT structure before the structure can be used.

The members of the IO_DRIVER_CREATE_CONTEXT structure (excluding the Size member) function as additional parameters to the IoCreateFileEx and FltCreateFileEx2 routines. Relative to the IoCreateFileEx and FltCreateFileEx2 routine's interface, the following information may be helpful:

See also

ECP_LIST

FltAllocateExtraCreateParameterFromLookasideList

FltAllocateExtraCreateParameterList

FltCreateFileEx2

FltFreeExtraCreateParameter

FltFreeExtraCreateParameterList

FltGetEcpListFromCallbackData

FltInsertExtraCreateParameter

FltRemoveExtraCreateParameter

FltSetEcpListIntoCallbackData

FsRtlAllocateExtraCreateParameterList

FsRtlFreeExtraCreateParameterList

IoCreateFileEx

IoCreateFileSpecifyDeviceObjectHint

IoGetTransactionParameterBlock

IoInitializeDriverCreateContext