Asociación de ECP a operaciones de IRP_MJ_CREATE que se originó un controlador en modo kernel
Debe seguir estos pasos para configurar ECP y adjuntar los ECP a una operación de IRP_MJ_CREATE en un archivo:
Llame a FltAllocateExtraCreateParameterList o FsRtlAllocateExtraCreateParameterList para asignar memoria para una estructura de ECP_LIST . El sistema operativo no libera automáticamente estructuras de ECP_LIST . En su lugar, el controlador de minifiltro debe llamar finalmente a FltFreeExtraCreateParameterList o FsRtlFreeExtraCreateParameterList para desasignar la memoria asignada para el ECP_LIST.
Llame a FltAllocateExtraCreateParameter o FsRtlAllocateExtraCreateParameter para asignar un grupo de memoria paginada para una estructura de contexto ECP y generar un puntero a esa estructura.
Llame a FltInsertExtraCreateParameter o FsRtlInsertExtraCreateParameter para insertar estructuras de contexto ECP en la estructura ECP_LIST .
Llame a IoInitializeDriverCreateContext para inicializar una estructura de IO_DRIVER_CREATE_CONTEXT .
Defina la estructura IO_DRIVER_CREATE_CONTEXT . En esta definición, apunte el miembro ExtraCreateParameter de IO_DRIVER_CREATE_CONTEXT a la estructura ECP_LIST .
Llame a FltCreateFileEx2 o IoCreateFileEx para adjuntar las ECP a la operación de IRP_MJ_CREATE en el archivo. En esta llamada, pase un puntero a la estructura IO_DRIVER_CREATE_CONTEXT al parámetro DriverContext .
Llame a FltFreeExtraCreateParameterList o FsRtlFreeExtraCreateParameterList para liberar la estructura de ECP_LIST . Estas funciones también liberarán automáticamente los elementos de lista ECP restantes.