NdisIfRegisterProvider 함수(ndis.h)

NdisIfRegisterProvider 함수는 NDIS 네트워크 인터페이스 공급자를 등록합니다.

구문

NDIS_STATUS NdisIfRegisterProvider(
  [in] PNDIS_IF_PROVIDER_CHARACTERISTICS ProviderCharacteristics,
  [in] NDIS_HANDLE                       IfProviderContext,
       PNDIS_HANDLE                      pNdisIfProviderHandle
);

매개 변수

[in] ProviderCharacteristics

호출자가 제공한 포인터 NDIS_IF_PROVIDER_CHARACTERISTICS 구조체입니다. 이 구조체는 공급자 콜백 함수의 진입점을 포함하여 공급자의 특성을 정의합니다.

[in] IfProviderContext

이 네트워크 인터페이스 공급자에 대한 호출자 제공 컨텍스트 영역에 대한 핸들입니다. 컨텍스트 영역이 없는 경우 이 매개 변수를 NULL 로 설정합니다.

pNdisIfProviderHandle

호출자가 제공한 핸들 변수에 대한 포인터입니다. 등록 작업이 성공하면 NDIS는 네트워크 인터페이스 공급자를 식별하는 핸들을 이 변수에 씁니다. 인터페이스 공급자는 인터페이스 공급자 핸들이 필요한 후속 호출에서 사용하기 위해 이 핸들을 유지해야 합니다.

반환 값

NdisIfRegisterProvider는 다음 상태 값 중 하나를 반환합니다.

반환 코드 설명
NDIS_STATUS_SUCCESS
작업이 성공적으로 완료되었습니다.
NDIS_STATUS_RESOURCES
리소스가 부족하여 작업이 실패했습니다.
NDIS_STATUS_INVALID_PARAMETER
NdisIfRegisterProvider 가 공급자를 등록하지 못했습니다.ProviderCharacteristics 매개 변수의 NDIS_IF_PROVIDER_CHARACTERISTICS 구조에 잘못된 멤버 데이터가 포함되어 있습니다.
NDIS_STATUS_NOT_SUPPORTED
NdisIfRegisterProvider 는 NDIS_IF_PROVIDER_CHARACTERISTICS 헤더 멤버가 지원되지 않는 구조체 버전을 지정하기 때문에 공급자를 등록하지 못했습니다.

설명

NDIS 드라이버는 초기화 중에 NdisIfRegisterProvider 함수를 한 번 호출하여 NDIS 인터페이스 공급자로 등록합니다. 예를 들어 드라이버는 DriverEntry 루틴에서 NdisIfRegisterProvider를 호출할 수 있습니다. 인터페이스 공급자는 MIB( RFC 2863)를 지원하기 위해 네트워크 인터페이스를 관리하는 소프트웨어 구성 요소입니다.

인터페이스 공급자 OID 요청을 처리하기 위해 인터페이스 공급자는 에서 콜백 함수에 대한 진입점을 제공합니다.NdisIfRegisterProviderProviderCharacteristics 매개 변수에서 구조체를 NDIS_IF_PROVIDER_CHARACTERISTICS.

NDIS 인터페이스 공급자는 NdisIfRegisterInterface 함수를 호출하여 네트워크 인터페이스를 등록합니다. 공급자는 여러 인터페이스를 등록할 수 있습니다.

NdisIfRegisterProvider가 성공하면 pNdisProviderHandle 매개 변수가 가리키는 위치에 핸들을 반환합니다. 인터페이스 공급자는 인터페이스 공급자 핸들이 필요한 후속 호출에서 사용하기 위해 이 핸들을 유지해야 합니다. 예를 들어 드라이버가 언로드되기 전에 드라이버가 NdisIfDeregisterProvider 를 호출해야 합니다.

인터페이스 공급자가 더 이상 없는 구성 요소는 언제든지 NdisIfDeregisterProvider 함수를 호출하여 드라이버가 NdisIfRegisterProvider 라고 할 때 NDIS가 할당한 인터페이스 공급자 리소스를 해제할 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 NDIS 6.0 이상에서 지원됩니다.
대상 플랫폼 데스크톱
머리글 ndis.h(Ndis.h 포함)
라이브러리 Ndis.lib
IRQL PASSIVE_LEVEL
DDI 규정 준수 규칙 Irql_Interfaces_Function(ndis)

추가 정보

DriverEntry

NDIS_IF_PROVIDER_CHARACTERISTICS

NdisIfDeregisterProvider

NdisIfRegisterInterface