Compartir a través de


Función NdisAllocateIoWorkItem (ndis.h)

Los controladores NDIS llaman a la función NdisAllocateIoWorkItem para asignar un elemento de trabajo. Para obtener más información, consulte elementos de trabajo de E/S de NDIS.

Sintaxis

NDIS_HANDLE NdisAllocateIoWorkItem(
  [in] NDIS_HANDLE NdisObjectHandle
);

Parámetros

[in] NdisObjectHandle

Identificador de un objeto NDIS asociado a un objeto de dispositivo o objeto de controlador.

Valor devuelto

Si NdisAllocateIoWorkItem asigna correctamente un elemento de trabajo, devuelve un identificador al elemento de trabajo. Si se produce un error, NdisAllocateIoWorkItem devuelve NULL.

Observaciones

Los controladores de miniporte NDIS pasan NdisAllocateIoWorkItem cualquiera de los dos identificadores: el controlador de adaptador que NDIS pasó a la función MiniportInitializeEx o el controlador de miniportar que NDIS devolvió cuando se llamó al controlador de miniporte llamado NdisMRegisterMiniportDriver.

Los controladores de filtro NDIS pueden pasar NdisAllocateIoWorkItem el controlador de filtro que devuelve NDIS cuando el controlador de filtro llamado NdisFRegisterFilterDriver.

Los controladores de miniporte NDIS y los controladores de filtro también pueden pasar NdisAllocateIoWorkItem el identificador del dispositivo NDIS que NDIS devolvió cuando el controlador llamado NdisRegisterDeviceEx. NdisAllocateIoWorkItem obtiene el objeto de dispositivo o el objeto de controlador asociado al identificador y pasa el objeto de dispositivo o controlador a la función IoAllocateWorkItem.

Nota Los controladores de protocolo no pueden usar NdisAllocateIoWorkItem porque NDIS no asocia controladores de protocolo con objetos de dispositivo o objetos de controlador.
 
Los controladores NDIS llaman a la función NdisQueueIoWorkItem para poner en cola los elementos de trabajo. Después de que un controlador llame a NdisQueueIoWorkItem, NDIS llama a la función de devolución de llamada especificada por el controlador en IRQL = PASSIVE_LEVEL. Esto puede mejorar el rendimiento del sistema al permitir que la función actual finalice inmediatamente y el controlador realice el trabajo más adelante en un IRQL inferior.

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

Los controladores pueden llamar a NdisFreeIoWorkItem en la rutina de devolución de llamada que se pasa a NdisQueueIoWorkItem.

Si un controlador de miniporte usó el identificador que NDIS pasó a MiniportInitializeEx cuando llamó a NdisAllocateIoWorkItem, el elemento de trabajo debe liberarse antes o en la llamada a los controladores función miniportHaltEx.

Si un controlador de minipuerto usó el controlador que NdisMRegisterMiniportDriver devuelto cuando el controlador llamó a NdisAllocateIoWorkItem, el controlador debe liberar el elemento de trabajo antes de que se descargue el controlador.

En general, un controlador debe liberar el elemento de trabajo antes de que se descargue el controlador.

Requisitos

Requisito Valor
cliente mínimo admitido Se admite en NDIS 6.0 y versiones posteriores.
de la plataforma de destino de Universal
encabezado de ndis.h (incluya Ndis.h)
biblioteca de Ndis.lib
irQL <= DISPATCH_LEVEL
reglas de cumplimiento de DDI Init_NdisAllocateIoWorkItem(ndis), Irql_Miscellaneous_Function(ndis)

Consulte también

IoAllocateWorkItem

MiniportHaltEx

MiniportInitializeEx

elementos de trabajo de E/S de NDIS

NdisFRegisterFilterDriver

NdisFreeIoWorkItem

NdisMRegisterMiniportDriver

NdisQueueIoWorkItem

NdisRegisterDeviceEx