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는 다음 상태 값 중 하나를 반환합니다.
반환 코드 | 설명 |
---|---|
|
작업이 성공적으로 완료되었습니다. |
|
리소스가 부족하여 작업이 실패했습니다. |
|
NdisIfRegisterProvider 가 공급자를 등록하지 못했습니다.ProviderCharacteristics 매개 변수의 NDIS_IF_PROVIDER_CHARACTERISTICS 구조에 잘못된 멤버 데이터가 포함되어 있습니다. |
|
NdisIfRegisterProvider 는 NDIS_IF_PROVIDER_CHARACTERISTICS 헤더 멤버가 지원되지 않는 구조체 버전을 지정하기 때문에 공급자를 등록하지 못했습니다. |
설명
NDIS 드라이버는 초기화 중에 NdisIfRegisterProvider 함수를 한 번 호출하여 NDIS 인터페이스 공급자로 등록합니다. 예를 들어 드라이버는 DriverEntry 루틴에서 NdisIfRegisterProvider를 호출할 수 있습니다. 인터페이스 공급자는 MIB( RFC 2863)를 지원하기 위해 네트워크 인터페이스를 관리하는 소프트웨어 구성 요소입니다.
인터페이스 공급자 OID 요청을 처리하기 위해 인터페이스 공급자는 에서 콜백 함수에 대한 진입점을 제공합니다.NdisIfRegisterProvider의 ProviderCharacteristics 매개 변수에서 구조체를 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) |