다음을 통해 공유


NdisOpenAdapter 함수(ndis.h)

참고 NDIS 5. x 더 이상 사용되지 않으며 NDIS 6으로 대체됩니다. x . 새로운 NDIS 드라이버 개발은 Windows Vista 시작하는네트워크 드라이버를 참조하세요. NDIS 5 포팅에 대한 자세한 내용입니다. x 드라이버를 NDIS 6에. x NDIS 5.x 드라이버를 NDIS 6.0 참조하세요.

NdisOpenAdapter 호출 프로토콜과 특정 기본 NIC 드라이버 또는 NDIS 중간 드라이버 간에 바인딩을 설정합니다.

통사론

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
);

매개 변수

[out] Status

이 함수의 반환 시 다음 값 중 하나일 수 있는 호출자 제공 변수에 대한 포인터입니다.

  • STATUS_SUCCESS
    이제 요청된 바인딩이 설정되었으므로 호출자가 NdisBindingHandle 반환된 값을 사용하고 NdisXxx대한 후속 호출에서 SelectedMediumIndex 수 있습니다.

  • NDIS_STATUS_PENDING
    요청된 작업이 비동기적으로 처리되고 있으며, 열기가 완료되면 호출자의 ProtocolOpenAdapterComplete 함수가 호출됩니다.

  • NDIS_STATUS_RESOURCES
    NDIS에서 충분한 메모리를 할당하거나 열린 바인딩을 추적하는 데 사용하는 상태를 초기화할 수 없어 요청된 작업이 실패했습니다.

  • NDIS_STATUS_ADAPTER_NOT_FOUND
    AdapterName 이름을 시스템 개체 네임스페이스에서 찾을 수 없어 요청된 작업이 실패했습니다.

  • NDIS_STATUS_UNSUPPORTED_MEDIA
    MediumArray 배열은 NDIS 또는 기본 드라이버에서 지원하는 매체를 지정하지 않았습니다.

  • NDIS_STATUS_CLOSING
    AdapterName 지정된 호출자 또는 물리적 또는 가상 디바이스가 닫히고 있습니다.

  • NDIS_STATUS_OPEN_FAILED
    이전의 특정 이유 중 어느 것도 열려 있지 않은 이유로 인해 열린 시도가 실패했습니다. 예를 들어 NDIS가 선택한 매체에 대한 필터 패키지를 초기화할 수 없을 수 있습니다.

[out] OpenErrorStatus

NdisOpenAdapter상태오류를 반환하는 경우 추가 정보를 제공하는 NDIS_STATUS_XXX 오류를 포함할 수 있는 호출자 제공 변수에 대한 포인터입니다. 예를 들어 토큰 링 NIC의 드라이버는 이 변수에 링 오류를 반환할 수 있습니다.

[out] NdisBindingHandle

NDIS가 호출자와 AdapterName지정된 지정된 물리적 또는 가상 NIC 간의 성공적인 바인딩을 나타내는 핸들을 반환하는 호출자 제공 변수에 대한 포인터입니다.

[out] SelectedMediumIndex

NDIS가 기본 NDIS 드라이버에서 사용하는 미디어 형식을 지정하는 배열 요소의 인덱스를 반환하는 호출자 제공 변수에 대한 포인터입니다.

[in] MediumArray

호출자가 지원할 수 있는 미디어 형식을 지정하는 NDIS_MEDIUM 형식 값 배열에 대한 포인터입니다. 가능한 요소에는 다음의 적절한 하위 집합이 포함됩니다.

  • NdisMedium802_3
    이더넷(802.3) 네트워크를 지정합니다.

  • NdisMedium802_5
    토큰 링(802.5) 네트워크를 지정합니다.

  • NdisMediumFddi
    FDDI(파이버 분산 데이터 인터페이스) 네트워크를 지정합니다.

  • NdisMediumWan
    광역 네트워크를 지정합니다. 이 형식은 다양한 형태의 지점 및 WAN NIC뿐만 아니라 바인딩이 설정된 후 프로토콜 드라이버와 기본 드라이버 간에 협상해야 하는 변형 주소/헤더 형식을 포함합니다.

  • NdisMediumLocalTalk
    LocalTalk 네트워크를 지정합니다.

  • NdisMediumDix
    드라이버가 DIX 이더넷 헤더 형식을 사용하는 이더넷 네트워크를 지정합니다.

  • NdisMediumArcnetRaw
    ARCNET 네트워크를 지정합니다.

  • NdisMediumArcnet878_2
    ARCNET(878.2) 네트워크를 지정합니다.

  • NdisMediumAtm
    ATM 네트워크를 지정합니다. 연결 지향 클라이언트 프로토콜은 이 값을 반환하는 기본 미니포트 드라이버에 자신을 바인딩할 수 있습니다. 그렇지 않으면 레거시 프로토콜은 네트워크 관리자가 LanE 드라이버를 구성하는 방법에 따라 중간 형식을 NdisMedium802_3 또는 NdisMedium802_5보고하는 시스템 제공 LanE 중간 드라이버에 바인딩됩니다.

  • NdisMediumWirelessWan
    무선 네트워크를 지정합니다. WLAN(무선 LAN) 또는 WWAN(무선 WAN) 패킷을 지원하는 NDIS 5.X 미니포트 드라이버는 해당 매체를 NdisMedium802_3 선언하고 이더넷을 상위 수준 NDIS 드라이버에 에뮬레이트합니다.

    참고 이 미디어 형식은 Windows Vista부터 사용할 수 없습니다.

  • NdisMediumIrda
    IrDA(적외선) 네트워크를 지정합니다.

  • NdisMediumCoWan
    연결 지향 환경에서 광역 네트워크를 지정합니다.

  • NdisMedium1394
    IEEE 1394(방화선) 네트워크를 지정합니다.

[in] MediumArraySize

MediumArray요소 수를 지정합니다.

[in] NdisProtocolHandle

NdisRegisterProtocol반환된 핸들을 지정합니다.

[in] ProtocolBindingContext

프로토콜이 설정된 후 이 바인딩에 대한 상태를 유지하는 호출자 제공 상주 컨텍스트 영역에 대한 핸들을 지정합니다.

[in] AdapterName

시스템 기본 문자 집합에 지정된 계산된 문자열을 포함하는 NDIS_STRING 형식에 대한 포인터로, 기본 NDIS 드라이버의 NIC 또는 가상 어댑터 이름을 지정합니다. 이 드라이버는 위쪽 가장자리(MiniportXxx) 함수 집합을 내보냅니다. Windows 2000 이상 드라이버의 경우 계산된 이 문자열에는 유니코드 문자가 포함됩니다. 즉, Windows 2000 이상의 경우 NDIS는 NDIS_STRING 형식을 UNICODE_STRING 형식으로 정의합니다.

[in] OpenOptions

호출자가 NIC 드라이버로 간주되는 다음 하위 드라이버에 전달하는 플래그가 포함된 비트 마스크를 지정합니다. 현재 이 매개 변수는 시스템 사용을 위해 예약되어 있습니다.

[in, optional] AddressingInformation

NIC 드라이버가 넷카드를 프로그래밍하는 데 사용할 수 있는 기본 NIC와 관련된 정보를 포함하는 선택적 가변 길이 계산 문자열에 대한 포인터입니다. 이 포인터는 NULL 수 있습니다.

제공된 경우 열린 작업이 완료될 때까지 주소 지정 정보가 유효한 상태로 유지되어야 합니다. 비동기 모뎀을 지원하는 기본 NIC 드라이버는 이 정보를 전화 걸기용으로 사용할 수 있습니다.

반환 값

없음

발언

프로토콜 드라이버는 ProtocolBindAdapter 함수에서 NdisOpenAdapter 호출합니다. NDIS는 레거시(V3.0) 프로토콜에서 사용할 수 있는 옵션인 DriverEntry 함수에서 NdisOpenAdapter 호출하는 것을 더 이상 지원하지 않습니다. NDIS는 더 이상 V3.0 프로토콜을 지원하지 않습니다. NDIS는 ProtocolBindAdapter컨텍스트 외부에서 NdisOpenAdapter 호출하지 못합니다.

AdapterName 문자열은 NdisOpenAdapter상태NDIS_STATUS_PENDING 반환하는 경우에도 컨트롤을 반환할 때까지만 유효합니다.

NdisBindingHandleSelectedMediumIndex 변수는 NdisOpenAdapter NDIS_STATUS_PENDING 반환하는 경우 ProtocolOpenAdapterComplete 함수가 호출될 때까지 무시되어야 합니다. 이러한 변수는 ProtocolOpenAdapterComplete 호출될 때까지 유효하지 않은 상태로 유지될 수 있으므로 스택에 있을 수 없습니다. 이 핸들은 ProtocolOpenAdapterComplete 입력 매개 변수이므로 일반적으로 이러한 변수는 ProtocolBindingContext 영역에 상주합니다.

프로토콜 드라이버는 NdisProtocolHandle반환된 핸들을 유지해야 합니다. 드라이버가 이후에 호출하는 다른 NdisXxx 함수에 대한 필수 매개 변수입니다. 제공된 ProtocolBindingContext 호출자의 ProtocolXxx 함수에 대한 입력 매개 변수이므로 프로토콜은 일반적으로 NdisOpenAdapter호출에서 호출자가 할당한 컨텍스트 영역의 변수에 NdisProtocolHandle 포인터를 전달합니다.

호출자는 NdisRequest 및/또는 NdisCoRequest대한 후속 호출에서 SelectedMediumIndex 반환된 값을 사용합니다. 요청 패킷에서 설정하는 OID는 반환된 NdisMediumXxx따라 달라집니다. 예를 들어 NdisMediumAtmSelectedMediumIndex반환되는 경우 프로토콜 드라이버는 OID_ATM_ XXX 지정하거나 XXX코드를 OID_CO_NdisCoRequest 호출합니다. 및 NdisRequest는 OID_GEN_XXX 코드를 지정할 때.

NdisMediumWanSelectedMediumIndex반환되는 경우 프로토콜 드라이버는 쿼리에서 OID_WAN_MEDIUM_SUBTYPE 지정하는 NdisRequest 호출하여 기본 드라이버가 사용하는 WAN 미디어 형식을 결정합니다.

무선 미디어에 대한 OID_NETWORK_TYPE 대해 이전에 실행한 전역 쿼리에서 드라이버와 기본 NIC가 둘 이상의 NdisMediumWirelessWan-type medium을 지원한다는 것을 나타내는 경우 프로토콜은 NDIS가 바인딩을 설정한 즉시 프로토콜이 헤더 형식을 선택하기 전에 지원되는 미디어 중 하나를 선택해야 합니다.

프로토콜 드라이버가 just-bound NDIS 드라이버와 협상하는 데 사용하는 일반 및 중간 특정 OD에 대한 자세한 내용은 NDIS 개체 식별자참조하세요.

  • 대상 플랫폼: 유니버설
  • 버전: Windows Vista에서 NDIS 6.0 드라이버에 대해 지원되지 않습니다. 대신 NdisOpenAdapterEx사용합니다. Windows Vista 및 Windows XP에서 NDIS 5.1 드라이버에 대해 지원됩니다.

요구 사항

요구
헤더 ndis.h(Ndis.h 포함)
라이브러리 Ndis.lib
IRQL PASSIVE_LEVEL

참고 항목