Compartir a través de


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:

  1. 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.

  2. 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.

  3. Llame a FltInsertExtraCreateParameter o FsRtlInsertExtraCreateParameter para insertar estructuras de contexto ECP en la estructura ECP_LIST .

  4. Llame a IoInitializeDriverCreateContext para inicializar una estructura de IO_DRIVER_CREATE_CONTEXT .

  5. 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 .

  6. 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 .

  7. 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.