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

Comentarios

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

Los controladores de filtro NDIS pueden pasar NdisAllocateIoWorkItem el controlador de filtro que NDIS devolvió 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 llamó a NdisRegisterDeviceEx. NdisAllocateIoWorkItem obtiene el objeto de dispositivo o el objeto de controlador asociado al identificador y pasa el objeto de dispositivo o el objeto driver 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 asignado a NdisAllocateIoWorkItem .

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

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

Si un controlador de minipuerto usó el identificador que NdisMRegisterMiniportDriver devolvió 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 el controlador se descargue.

Requisitos

Requisito Value
Cliente mínimo compatible Compatible con NDIS 6.0 y versiones posteriores.
Plataforma de destino Universal
Encabezado ndis.h (incluya Ndis.h)
Library 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