Compartir a través de


Elementos de trabajo de E/S de NDIS

Los controladores pueden poner en cola funciones de devolución de llamada de elementos de trabajo de E/S para su posterior ejecución. NDIS llama a la función de devolución de llamada especificada por el controlador en IRQL = PASSIVE_LEVEL. Esto mejora el rendimiento del sistema al permitir que la función actual vuelva inmediatamente y el controlador realice el trabajo más adelante en un IRQL inferior.

NDIS 6.0 y versiones posteriores proporcionan funciones de contenedor para las rutinas de elementos de trabajo de E/S del kernel IoAllocateWorkItem, IoFreeWorkItem e IoQueueWorkItem. En lugar de la estructura de IO_WORKITEM privada, NDIS usa la estructura NDIS_IO_WORKITEM privada.

Los controladores NDIS 6.0 llaman a la función NdisAllocateIoWorkItem para asignar un elemento de trabajo. Los controladores de miniporte NDIS pasan NdisAllocateIoWorkItem el controlador de adaptador que NDIS pasó a la función MiniportInitializeEx . NdisAllocateIoWorkItem obtiene el objeto de dispositivo asociado al identificador y pasa el objeto de dispositivo a la rutina IoAllocateWorkItem . Los controladores de filtro pasan un identificador de filtro.

Nota Los controladores de protocolo no pueden usar NdisAllocateIoWorkItem porque NDIS no asocia controladores de protocolo a objetos de dispositivo.

Los controladores NDIS llaman a la función NdisQueueIoWorkItem para poner en cola los elementos de trabajo. Los elementos de trabajo de NDIS usan el tipo de cola CriticalWorkQueue .

Los controladores NDIS deben llamar a la función NdisFreeIoWorkItem para liberar los recursos asociados a un elemento de trabajo asignado a NdisAllocateIoWorkItem .

Subprocesos de trabajo del sistema