NdisRegisterProtocolDriver 함수(ndis.h)
프로토콜 드라이버는 NdisRegisterProtocolDriver 함수를 호출하여 ProtocolXxx 함수를 NDIS에 등록합니다.
구문
NDIS_STATUS NdisRegisterProtocolDriver(
[in, optional] NDIS_HANDLE ProtocolDriverContext,
[in] PNDIS_PROTOCOL_DRIVER_CHARACTERISTICS ProtocolCharacteristics,
[out] PNDIS_HANDLE NdisProtocolHandle
);
매개 변수
[in, optional] ProtocolDriverContext
드라이버가 상태 및 구성 정보를 유지하는 드라이버 할당 컨텍스트 영역에 대한 핸들입니다.
[in] ProtocolCharacteristics
에 대한 포인터 프로토콜 드라이버가 ProtocolXxx 함수 진입점을 사용하여 만들고 초기화한 구조를 NDIS_PROTOCOL_DRIVER_CHARACTERISTICS.
[out] NdisProtocolHandle
호출자가 제공한 핸들 변수에 대한 포인터입니다. NDIS는 등록 중인 드라이버를 고유하게 식별하는 핸들을 이 변수에 씁니다. 드라이버는 후속 NdisXxx 함수 호출에 사용하기 위해 이 핸들을 저장해야 합니다.
반환 값
NdisRegisterProtocolDriver는 다음 상태 값 중 하나를 반환합니다.
반환 코드 | 설명 |
---|---|
|
NdisRegisterProtocolDriver는 프로토콜 드라이버를 등록한 경우 NDIS_STATUS_SUCCESS 반환합니다. |
|
ProtocolCharacteristics 구조체의 MajorNdisVersion 멤버에 지정된 버전이 잘못되었습니다. |
|
ProtocolCharacteristics 매개 변수에 있는 구조체의 일부 멤버가 잘못되었습니다. |
|
리소스가 부족하여 NdisRegisterProtocolDriver가 실패했습니다. |
|
이전 값이 적용되지 않으면 NdisRegisterProtocolDriver는 NDIS_STATUS_FAILURE 반환합니다. |
설명
프로토콜 드라이버는 DriverEntry 루틴에서 NdisRegisterProtocolDriver 함수를 호출합니다. DriverEntry에 대한 자세한 내용은 NDIS 프로토콜 드라이버의 DriverEntry를 참조하세요.
NdisRegisterProtocolDriver를 호출하는 드라이버는 ProtocolXxx 함수를 즉시 호출할 수 있도록 준비해야 합니다.
모든 프로토콜 드라이버는 를 설정하여 ProtocolXxx 함수 집합을 내보냅니다. NDIS_PROTOCOL_DRIVER_CHARACTERISTICS 구조 및 NdisRegisterProtocolDriver를 호출합니다. NDIS는 이 구조를 NDIS 라이브러리의 내부 스토리지에 복사합니다.
프로토콜 드라이버가 선택적 서비스를 등록할 수 있도록 NDIS는 NdisRegisterProtocolDriver 컨텍스트 내에서 ProtocolSetOptions 함수를 호출합니다.
프로토콜 드라이버는 다음을 호출합니다. NdisDeregisterProtocolDriver 함수는 이전에 NdisRegisterProtocolDriver로 할당된 리소스를 해제합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | NDIS 6.0 이상에서 지원됩니다. |
대상 플랫폼 | 데스크톱 |
머리글 | ndis.h(Ndis.h 포함) |
라이브러리 | Ndis.lib |
IRQL | PASSIVE_LEVEL |
DDI 규정 준수 규칙 | Irql_Protocol_Driver_Function(ndis) |