Share via


NdisOpenAdapterEx (Compact 7)

3/12/2014

A protocol driver calls this function from its ProtocolBindAdapterEx function to set up a binding between the protocol driver and an underlying driver.

Syntax

NDIS_STATUS
  NdisOpenAdapterEx(
    IN NDIS_HANDLE  NdisProtocolHandle,
    IN NDIS_HANDLE  ProtocolBindingContext,
    IN PNDIS_OPEN_PARAMETERS  OpenParameters,
    IN NDIS_HANDLE  BindContext,
    OUT PNDIS_HANDLE  NdisBindingHandle
    );

Parameters

  • ProtocolBindingContext
    The handle for a caller-supplied context area in which the protocol driver maintains state information for this binding.
  • BindContext
    The handle that identifies the NDIS context area for the bind operation. NDIS passed this handle to the BindContext parameter of the ProtocolBindAdapterEx function.
  • NdisBindingHandle
    A pointer to a caller-supplied variable. NDIS writes a handle at NdisBindingHandle that identifies the binding between the caller and the miniport adapter specified in the AdapterName member at OpenParameters. The caller uses this handle in subsequent calls to NdisXxx functions.

Return Value

NdisOpenAdapterEx returns one of the following status values:

Value Description

NDIS_STATUS_SUCCESS

NdisOpenAdapterEx successfully completed the open operation.

NDIS_STATUS_PENDING

NdisOpenAdapterEx did not complete the open operation. NDIS later calls the protocol driver's ProtocolOpenAdapterCompleteEx function to complete the open operation.

NDIS_STATUS_RESOURCES

NdisOpenAdapterEx failed because of insufficient resources.

NDIS_STATUS_ADAPTER_NOT_FOUND

NdisOpenAdapterEx failed because a miniport adapter specified in the AdapterName member at OpenParameters could not be found.

NDIS_STATUS_UNSUPPORTED_MEDIA

NdisOpenAdapterEx failed because the array specified in the MediumArray member at OpenParameters did not include a medium type that NDIS or the underlying driver supports.

NDIS_STATUS_FAILURE

NdisOpenAdapterEx failed for reasons other than those in the preceding list.

Remarks

A protocol driver must call NdisOpenAdapterEx from its ProtocolBindAdapterEx function. NDIS fails any attempt to call NdisOpenAdapterEx outside the context of ProtocolBindAdapterEx.

If NdisOpenAdapterEx returns NDIS_STATUS_PENDING, the caller must not use the values at NdisBindingHandle and the SelectedMediumIndex member at OpenParameters until NDIS calls the ProtocolOpenAdapterCompleteEx function.

The string at AdapterName must remain valid only until NdisOpenAdapterEx returns. Therefore, in the case that NdisOpenAdapterEx returns NDIS_STATUS_PENDING, the driver is not required to continue to keep this string after NdisOpenAdapterEx returns.

After the open operation is completed successfully, the caller can use the value that NDIS returned in the NdisBindingHandle in subsequent calls to NdisXxx functions. The caller can use the SelectedMediumIndex member of the OpenParameters parameter to determine how it should interact with the underlying driver.

Requirements

Header

ndis.h

See Also

Reference

NDIS Functions for Protocol Drivers
NDIS_OPEN_PARAMETERS
NdisRegisterProtocolDriver
ProtocolBindAdapterEx
ProtocolOpenAdapterCompleteEx