Compartir a través de


Función NdisOpenAdapter (ndis.h)

Nota NDIS 5. x ha quedado en desuso y se sustituye por NDIS 6. x. Para el nuevo desarrollo de controladores NDIS, consulte Controladores de red a partir de Windows Vista. Para obtener información sobre cómo migrar NDIS 5. controladores x a NDIS 6. x, consulte Porting NDIS 5.x Drivers to NDIS 6.0.

NdisOpenAdapter configura un enlace entre el protocolo de llamada y un controlador NIC subyacente determinado o un controlador intermedio NDIS.

Sintaxis

void NdisOpenAdapter(
  [out]          PNDIS_STATUS Status,
  [out]          PNDIS_STATUS OpenErrorStatus,
  [out]          PNDIS_HANDLE NdisBindingHandle,
  [out]          PUINT        SelectedMediumIndex,
  [in]           PNDIS_MEDIUM MediumArray,
  [in]           UINT         MediumArraySize,
  [in]           NDIS_HANDLE  NdisProtocolHandle,
  [in]           NDIS_HANDLE  ProtocolBindingContext,
  [in]           PNDIS_STRING AdapterName,
  [in]           UINT         OpenOptions,
  [in, optional] PSTRING      AddressingInformation
);

Parámetros

[out] Status

Puntero a una variable proporcionada por el autor de la llamada que puede ser uno de los siguientes valores devueltos de esta función:

  • STATUS_SUCCESS
    El enlace solicitado ahora está configurado para que el autor de la llamada pueda usar los valores devueltos en NdisBindingHandle y SelectedMediumIndex en llamadas posteriores a NdisXxx.

  • NDIS_STATUS_PENDING
    La operación solicitada se controla de forma asincrónica y se llamará a la función ProtocolOpenAdapterComplete del autor de la llamada cuando se complete la apertura.

  • NDIS_STATUS_RESOURCES
    Error en la operación solicitada porque NDIS no pudo asignar suficiente memoria o inicializar el estado que usa para realizar un seguimiento de un enlace abierto.

  • NDIS_STATUS_ADAPTER_NOT_FOUND
    Error en la operación solicitada porque no se encontró el nombre en AdapterName en el espacio de nombres del objeto del sistema.

  • NDIS_STATUS_UNSUPPORTED_MEDIA
    La matriz de MediumArray no especificó ningún medio compatible con NDIS ni por el controlador subyacente.

  • NDIS_STATUS_CLOSING
    Se cierra el autor de la llamada o el dispositivo físico o virtual designado en AdapterName.

  • NDIS_STATUS_OPEN_FAILED
    Error al intentar abrir ninguno de los motivos específicos anteriores. Por ejemplo, posiblemente NDIS no pudo inicializar el paquete de filtro para el medio seleccionado.

[out] OpenErrorStatus

Puntero a una variable proporcionada por el autor de la llamada que puede contener un error de NDIS_STATUS_XXX que proporciona más información si NdisOpenAdapter devuelve un error en Status. Por ejemplo, el controlador de una NIC de anillo de token podría devolver un error de anillo en esta variable.

[out] NdisBindingHandle

Puntero a una variable proporcionada por el autor de la llamada en la que NDIS devuelve un identificador que representa un enlace correcto entre el llamador y la NIC física o virtual especificada en AdapterName.

[out] SelectedMediumIndex

Puntero a una variable proporcionada por el autor de la llamada en la que NDIS devuelve el índice del elemento de matriz que especifica el tipo de medio que usa el controlador NDIS subyacente.

[in] MediumArray

Puntero a una matriz de valores de tipo NDIS_MEDIUM que especifican los tipos de medios que el autor de la llamada puede admitir. Los posibles elementos incluyen cualquier subconjunto adecuado de lo siguiente:

  • NdisMedium802_3
    Especifica una red Ethernet (802.3).

  • NdisMedium802_5
    Especifica una red de anillo de token (802.5).

  • NdisMediumFddi
    Especifica una red de interfaz de datos distribuida de fibra (FDDI).

  • NdisMediumWan
    Especifica una red de área extensa. Este tipo abarca varias formas de NIC de punto a punto y WAN, así como formatos de dirección y encabezado variantes que se deben negociar entre el controlador de protocolo y el controlador subyacente después de establecer el enlace.

  • NdisMediumLocalTalk
    Especifica una red de LocalTalk.

  • NdisMediumDix
    Especifica una red Ethernet para la que los controladores usan el formato de encabezado Ethernet DIX.

  • NdisMediumArcnetRaw
    Especifica una red ARCNET.

  • NdisMediumArcnet878_2
    Especifica una red ARCNET (878.2).

  • NdisMediumAtm
    Especifica una red ATM. Los protocolos de cliente orientados a la conexión se pueden enlazar a un controlador de miniport subyacente que devuelve este valor. De lo contrario, los protocolos heredados se enlazan a sí mismos al controlador intermedio LanE proporcionado por el sistema, que notifica su tipo medio como de NdisMedium802_3 o NdisMedium802_5, en función de cómo el administrador de red configure el controlador LanE.

  • NdisMediumWirelessWan
    Especifica una red inalámbrica. Los controladores de miniporte NDIS 5.X que admiten paquetes LAN inalámbricos (WLAN) o WAN inalámbrica (WWAN) declaran su medio como NdisMedium802_3 y emulan Ethernet a controladores NDIS de nivel superior.

    Nota Este tipo de medio no está disponible para su uso a partir de Windows Vista.

  • NdisMediumIrda
    Especifica una red de infrarrojos (IrDA).

  • NdisMediumCoWan
    Especifica una red de área extensa en un entorno orientado a la conexión.

  • NdisMedium1394
    Especifica una red IEEE 1394 (cable de incendio).

[in] MediumArraySize

Especifica el número de elementos de MediumArray.

[in] NdisProtocolHandle

Especifica el identificador devuelto por NdisRegisterProtocol.

[in] ProtocolBindingContext

Especifica el identificador de un área de contexto residente proporcionada por el autor de la llamada en la que el protocolo mantiene el estado sobre este enlace una vez establecido.

[in] AdapterName

Puntero a un tipo de NDIS_STRING que contiene una cadena con recuento, especificada en el juego de caracteres predeterminado del sistema, asignando un nombre a la NIC o al adaptador virtual de un controlador NDIS subyacente. Este controlador exporta un conjunto de funciones de borde superior ( MiniportXxx). En el caso de los controladores de Windows 2000 y versiones posteriores, esta cadena contada contiene caracteres Unicode. Es decir, para Windows 2000 y versiones posteriores, NDIS define el tipo de NDIS_STRING como un tipo de UNICODE_STRING.

[in] OpenOptions

Especifica una máscara de bits que contiene marcas que el autor de la llamada pasa al controlador inferior siguiente, que se supone que es un controlador NIC. Actualmente, este parámetro está reservado para el uso del sistema.

[in, optional] AddressingInformation

Puntero a una cadena con recuento de longitud variable opcional que contiene información específica de la NIC subyacente que el controlador NIC puede usar para programar el netcard. Este puntero puede ser NULL.

Si se proporciona, la información de direccionamiento debe permanecer válida hasta que se complete la operación abierta. Un controlador NIC subyacente que admita un módem asincrónico puede usar esta información para marcar.

Valor devuelto

Ninguno

Observaciones

Un controlador de protocolo llama a NdisOpenAdapter desde su función ProtocolBindAdapter. NDIS ya no admite llamadas a NdisOpenAdapter desde la función DriverEntry, que era una opción disponible para los protocolos heredados (V3.0). NDIS ya no admite protocolos V3.0. NDIS produce un error en cualquier intento de llamar a NdisOpenAdapter fuera del contexto de ProtocolBindAdapter.

La cadena de AdapterName permanece válida solo hasta que NdisOpenAdapter devuelve el control, incluso si devuelve NDIS_STATUS_PENDING en Estado.

Las variables de NdisBindingHandle y SelectedMediumIndex deben omitirse hasta que se llame a la funciónProtocolOpenAdapterCompletesi NdisOpenAdapter devuelve NDIS_STATUS_PENDING. Dado que estas variables pueden permanecer no válidas hasta que se llama a ProtocolOpenAdapterComplete, no pueden estar en la pila. Normalmente, estas variables residen en el área de ProtocolBindingContext, ya que este identificador es un parámetro de entrada para ProtocolOpenAdapterComplete.

Un controlador de protocolo debe mantener el identificador devuelto en NdisProtocolHandle. Es un parámetro necesario para otras funciones de NdisXxx que el controlador llama posteriormente. El ProtocolBindingContext proporcionado es un parámetro de entrada para las funciones ProtocolXxx del autor de la llamada, por lo que los protocolos normalmente pasan un puntero NdisProtocolHandle a una variable en algún lugar del área de contexto asignada por el autor de la llamada en sus llamadas a NdisOpenAdapter.

El llamador usa el valor devuelto en selectedMediumIndex en llamadas posteriores a NdisRequest o NdisCoRequest. Los OID que establece en el paquete de solicitud dependen del NdisMediumXxx devuelto. Por ejemplo, si NdisMediumAtm se devuelve en SelectedMediumIndex, el controlador de protocolo llama NdisCoRequest al especificar OID_ATM_ XXX o OID_CO_códigos de XXX y NdisRequest al especificar OID_GEN_códigos XXX.

Si NdisMediumWan se devuelve en SelectedMediumIndex, el controlador de protocolo llama a NdisRequest especificando OID_WAN_MEDIUM_SUBTYPE en una consulta para determinar qué tipos de medios WAN usa el controlador subyacente.

Si una consulta global emitida anteriormente de OID_NETWORK_TYPE para medios inalámbricos indica que el controlador y la NIC subyacente admiten más de una NdisMediumWirelessWan-type medium, el protocolo debe seleccionar uno de los medios admitidos en cuanto NDIS haya configurado el enlace y antes de que el protocolo seleccione el formato de encabezado.

Para obtener más información sobre los identificadores de identificadores generales y medianos específicos que usan los controladores de protocolo para negociar con un controlador NDIS enlazado just, consulte identificadores de objeto NDIS.

  • Plataforma de destino: universal de
  • Versión: no se admite para controladores NDIS 6.0 en Windows Vista. Use NdisOpenAdapterEx en su lugar. Compatible con controladores NDIS 5.1 en Windows Vista y Windows XP.

Requisitos

Requisito Valor
encabezado de ndis.h (incluya Ndis.h)
biblioteca de Ndis.lib
irQL PASSIVE_LEVEL

Consulte también