Freigeben über


IO_DRIVER_CREATE_CONTEXT-Struktur (ntddk.h)

Die IO_DRIVER_CREATE_CONTEXT-Struktur wird verwendet, um zusätzliche Parameter an die Routinen IoCreateFileEx und FltCreateFileEx2 zu übergeben. Diese Struktur ist optional.

Die IoCreateFileEx-Routine wird von Legacyfiltertreibern verwendet, und die FltCreateFileEx2-Routine wird von Minifiltertreibern verwendet.

Syntax

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;

Member

Size

Ein schreibgeschütztes Element, das von der IoInitializeDriverCreateContext-Routine initialisiert wird.

ExtraCreateParameter

Ein Zeiger auf eine ECP_LIST-Struktur , die eine Liste zusätzlicher ECP-Einträge (Create Parameter) enthält. Wichtige Informationen finden Sie im abschnitt "Hinweise ".

DeviceObjectHint

Wenn IO_DRIVER_CREATE_CONTEXT verwendet wird, um zusätzliche Create-Parameter an die FltCreateFileEx2-Routine zu übergeben, muss dieser Member NULL sein.

Wenn IO_DRIVER_CREATE_CONTEXT verwendet wird, um zusätzliche Erstellungsparameter an die IoCreateFileEx-Routine zu übergeben, ist dieser Member ein Zeiger auf das Geräteobjekt, an das die Erstellungsanforderung gesendet wird. Das Geräteobjekt muss ein Älteres Filter- oder Dateisystemgeräteobjekt im Dateisystemtreiberstapel für das Volume sein, auf dem sich die Datei oder das Verzeichnis befindet. Im Fall IoCreateFileEx ist dieser Parameter optional und kann NULL sein. Wenn dieser Parameter NULL ist, wird die Anforderung an das Geräteobjekt am Anfang des Treiberstapels gesendet.

TxnParameters

Ein Zeiger auf eine Transaktion, die Sie dem Erstellungsvorgang zuordnen möchten. Der Erstellungsvorgang ist Teil der Transaktion, wenn der Wert dieses Members ein gültiger Zeiger auf die Transaktion ist. Wenn der Wert dieses Members NULL ist, ist der Erstellungsvorgang nicht Teil einer Transaktion.

SiloContext

Der Container, in dem sich die Datei befindet. Dieses Element wurde in Windows 10, Version 1607, eingeführt.

Hinweise

Die IO_DRIVER_CREATE_CONTEXT-Struktur kann aus einem ausgelagerten oder nicht ausgelagerten Pool zugeordnet werden. Die IoInitializeDriverCreateContext-Routine muss die IO_DRIVER_CREATE_CONTEXT-Struktur initialisieren, bevor die -Struktur verwendet werden kann.

Die Member der IO_DRIVER_CREATE_CONTEXT-Struktur (mit Ausnahme des Size-Elements ) fungieren als zusätzliche Parameter für die Routinen IoCreateFileEx und FltCreateFileEx2 . Im Vergleich zur Schnittstelle der Routinen IoCreateFileEx und FltCreateFileEx2 können die folgenden Informationen hilfreich sein:

  • Eine ECP_LIST-Struktur enthält eine Liste zusätzlicher ECP-Einträge (Create Parameter). Jeder ECP-Eintrag (ECP-Kontextstruktur) in der ECP-Liste (ECP_LIST-Struktur) fungiert als zusätzlicher Create-Parameter für IoCreateFileEx und FltCreateFileEx2.

    Um einen ECP als Teil eines Erstellungsvorgangs anzugeben, initialisieren Sie das ExtraCreateParameter-Element der IO_DRIVER_CREATE_CONTEXT-Struktur mit der richtigen Routine:

    Wenn ECPs verwendet werden, müssen sie mithilfe der entsprechenden Routinen erstellt, bearbeitet und freigegeben werden. Minifiltertreiber verwenden beispielsweise die FltInsertExtraCreateParameter-Routine , um einen ECP-Eintrag in eine ECP-Liste einzufügen. Im folgenden Abschnitt Siehe auch werden viele dieser erforderlichen Routinen aufgeführt.

    Nach einem Aufruf von IoCreateFileEx oder FltCreateFileEx2 bleibt die ECP-Liste unverändert und kann für neue Erstellungsvorgänge an zusätzliche IoCreateFileEx - oder FltCreateFileEx2-Aufrufe übergeben werden.

  • Um eine Datei im Kontext einer Transaktion zu erstellen oder zu öffnen, legen Sie den TxnParameters-Member der IO_DRIVER_CREATE_CONTEXT-Struktur auf den Wert fest, der von der IoGetTransactionParameterBlock-Routine zurückgegeben wird.

Anforderungen

Anforderung Wert
Header ntddk.h (include Ntddk.h, Ntifs.h, Fltkernel.h)

Weitere Informationen

ECP_LIST

FltAllocateExtraCreateParameterFromLookasideList

FltAllocateExtraCreateParameterList

FltCreateFileEx2

FltFreeExtraCreateParameter

FltFreeExtraCreateParameterList

FltGetEcpListFromCallbackData

FltInsertExtraCreateParameter

FltRemoveExtraCreateParameter

FltSetEcpListIntoCallbackData

FsRtlAllocateExtraCreateParameterList

FsRtlFreeExtraCreateParameterList

IoCreateFileEx

IoCreateFileSpecifyDeviceObjectHint

IoGetTransactionParameterBlock

IoInitializeDriverCreateContext