Introducción a los controladores de protocolo NDIS
Un controlador de protocolo NDIS exporta un conjunto de funciones ProtocolXxx en su borde inferior. Este tipo de controlador de protocolo se comunica con NDIS para enviar y recibir datos de red. El controlador de protocolo se enlaza a un controlador de miniporte subyacente o a un controlador intermedio que exporta una interfaz MiniportXxx en su borde superior.
Nota El borde superior del controlador de minipuerto de un controlador intermedio (miniport virtual) no administra los dispositivos físicos. Los controladores de minipuerto subyacentes administran dispositivos físicos.
Los controladores de protocolo siempre usan funciones proporcionadas por NDIS para comunicarse con los controladores NDIS subyacentes para enviar y recibir datos de red. Por ejemplo, un controlador de protocolo que tiene un borde inferior sin conexión (que se comunica con controladores subyacentes para medios sin conexión, como Ethernet) debe llamar a NdisSendNetBufferLists para enviar datos de red a un controlador NDIS subyacente. El controlador de protocolo puede llamar a NdisOidRequest para consultar o establecer identificadores OID que admiten controladores sin conexión subyacentes. Un controlador de protocolo que tenga un borde inferior orientado a la conexión (que se comunica con controladores subyacentes para medios orientados a la conexión, como ISDN) debe llamar a NdisCoSendNetBufferLists para enviar datos de red a un controlador NDIS de nivel inferior. También puede llamar a NdisCoOidRequest para consultar o establecer identificadores de identificadores operativos compatibles con los controladores subyacentes orientados a la conexión.
NDIS también proporciona un conjunto de funciones NdisXxx que ocultan los detalles del sistema operativo subyacente. Por ejemplo, un controlador de protocolo puede llamar a NdisInitializeEvent para crear un evento con fines de sincronización y NdisInitializeListHead para crear una lista vinculada. Los controladores de protocolo que usan las versiones NDIS de estas funciones son más portátiles en todos los sistemas operativos de Microsoft. Sin embargo, los controladores de protocolo también pueden llamar a rutinas de compatibilidad con modo kernel, como IoCreateDevice. Para obtener más información, vea Resumen de Kernel-Mode rutinas de soporte técnico.
Los desarrolladores de controladores de protocolo deben usar las mismas consideraciones de programación que se aplican a otros controladores NDIS.