Anfügen von ECPs an IRP_MJ_CREATE Vorgänge, von denen ein Kernelmodustreiber stammt
Führen Sie die folgenden Schritte aus, um ECPs einzurichten und die ECPs an einen IRP_MJ_CREATE-Vorgang für eine Datei anzufügen:
Rufen Sie FltAllocateExtraCreateParameterList oder FsRtlAllocateExtraCreateParameterList auf, um Arbeitsspeicher für eine ECP_LIST-Struktur zuzuweisen. Das Betriebssystem gibt ECP_LIST Strukturen nicht automatisch frei. Stattdessen muss der Minifiltertreiber schließlich FltFreeExtraCreateParameterList oder FsRtlFreeExtraCreateParameterList aufrufen, um die Zuordnung von Arbeitsspeicher aufzugeben, der für die ECP_LIST zugewiesen wurde.
Rufen Sie FltAllocateExtraCreateParameter oder FsRtlAllocateExtraCreateParameter auf, um einen ausgelagerten Speicherpool für eine ECP-Kontextstruktur zuzuweisen und einen Zeiger auf diese Struktur zu generieren.
Rufen Sie FltInsertExtraCreateParameter oder FsRtlInsertExtraCreateParameter auf , um ECP-Kontextstrukturen in die ECP_LIST-Struktur einzufügen.
Rufen Sie IoInitializeDriverCreateContext auf, um eine IO_DRIVER_CREATE_CONTEXT-Struktur zu initialisieren.
Definieren Sie die IO_DRIVER_CREATE_CONTEXT-Struktur . Zeigen Sie in dieser Definition den ExtraCreateParameter-Member von IO_DRIVER_CREATE_CONTEXT auf die ECP_LIST-Struktur .
Rufen Sie FltCreateFileEx2 oder IoCreateFileEx auf, um die ECPs an den IRP_MJ_CREATE Vorgang für die Datei anzufügen. Übergeben Sie in diesem Aufruf einen Zeiger auf die IO_DRIVER_CREATE_CONTEXT-Struktur an den DriverContext-Parameter .
Rufen Sie FltFreeExtraCreateParameterList oder FsRtlFreeExtraCreateParameterList auf, um die ECP_LIST-Struktur frei zu geben. Diese Funktionen geben auch alle verbleibenden ECP-Listenelemente automatisch frei.