NdisMRegisterMiniportDriver 함수(ndis.h)

미니포트 드라이버는 NdisMRegisterMiniportDriver 함수를 호출하여 초기화의 첫 번째 단계로 MiniportXxx 진입점을 NDIS에 등록합니다.

구문

NDIS_STATUS NdisMRegisterMiniportDriver(
  [in]           PDRIVER_OBJECT                        DriverObject,
  [in]           PUNICODE_STRING                       RegistryPath,
  [in, optional] NDIS_HANDLE                           MiniportDriverContext,
  [in]           PNDIS_MINIPORT_DRIVER_CHARACTERISTICS MiniportDriverCharacteristics,
  [out]          PNDIS_HANDLE                          NdisMiniportDriverHandle
);

매개 변수

[in] DriverObject

Argument1 매개 변수의 DriverEntry 루틴에서 미니포트 드라이버가 받은 불투명 드라이버 개체에 대한 포인터입니다(NDIS 미니포트 드라이버의 DriverEntry 참조).

[in] RegistryPath

Argument2 매개 변수의 DriverEntry 루틴에서 미니포트 드라이버가 받은 불투명 레지스트리 경로에 대한 포인터입니다.

[in, optional] MiniportDriverContext

드라이버가 상태 및 구성 정보를 유지하는 드라이버 할당 컨텍스트 영역에 대한 핸들입니다.

[in] MiniportDriverCharacteristics

에 대한 포인터 호출 자가 초기화한 NDIS_MINIPORT_DRIVER_CHARACTERISTICS 구조체입니다.

[out] NdisMiniportDriverHandle

호출자가 제공한 핸들 변수에 대한 포인터입니다. NDIS는 이 드라이버를 고유하게 식별하는 핸들을 이 변수에 씁니다. 드라이버는 후속 NdisXxx 함수 호출에 사용하기 위해 이 핸들을 저장해야 합니다.

반환 값

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

반환 코드 설명
NDIS_STATUS_SUCCESS

NdisMRegisterMiniportDriver 가 미니포트 드라이버를 성공적으로 등록했습니다.

NDIS_STATUS_BAD_CHARACTERISTICS
CharacteristicsLength 매개 변수가 MiniportDriverCharacteristics 구조체의 MajorNdisVersion 멤버에 지정된 NDIS 버전에 대해 올바르지 않습니다.
NDIS_STATUS_BAD_VERSION
특성 구조에 지정된 MajorNdisVersion 또는 MinorNdisVersion 이 잘못되었습니다.
NDIS_STATUS_RESOURCES
메모리가 부족하여 NDIS에서 호출자를 등록하지 못했습니다.
NDIS_STATUS_FAILURE
이는 이전 오류 중 어느 것도 등록에 실패하지 않은 경우 반환되는 기본 오류 상태.

설명

NDIS 드라이버는 DriverEntry 루틴에서 NdisMRegisterMiniportDriver를 호출합니다. 자세한 내용은 NDIS 미니포트 드라이버의 DriverEntry를 참조하세요.

모든 미니포트 드라이버는 특성 구조를 설정하고 NdisMRegisterMiniportDriver를 호출하여 표준 MiniportXxx 함수 집합을 내보냅니다. NDIS는 특성 구조를 NDIS 내부 스토리지에 복사합니다. 따라서 등록한 후에는 드라이버가 MiniportXxx 진입점을 변경할 수 없습니다.

가상 미니포트 인터페이스를 등록하려면 NDIS 중간 드라이버가 MiniportDriverCharacteristics 구조에 설정된 NDIS_INTERMEDIATE_DRIVER 플래그를 사용하여 NdisMRegisterMiniportDriver를 호출해야 합니다. WDM 아래쪽 가장자리가 있는 NDIS 드라이버는 MiniportDriverCharacteristics 구조에 설정된 NDIS_WDM_DRIVER 플래그를 사용하여 NdisMRegisterMiniportDriver를 호출해야 합니다.

드라이버는 결합된 미니포트 드라이버 및 중간 드라이버로 등록할 수 있습니다. 물리적 미니포트 드라이버를 등록하기 위해 미니포트 중간 드라이버는 미니포트 드라이버와 마찬가지로 적절한 매개 변수를 사용하여 NdisMRegisterMiniportDriver 를 호출합니다. 가상 미니포트 인터페이스를 등록하기 위해 드라이버는 MiniportDriverCharacteristics 매개 변수에 설정된 NDIS_INTERMEDIATE_DRIVER 플래그를 사용하여 NdisMRegisterMiniportDriver를 다시 호출합니다.

미니포트 드라이버가 선택적 서비스를 등록할 수 있도록 NDIS는 NdisMRegisterMiniportDriver의 컨텍스트 내에서 MiniportSetOptions 함수를 호출합니다.

드라이버가 NdisMRegisterMiniportDriver를 호출한 후 DriverEntry가 반환된 후 언제든지 MiniportDriverCharacteristics 매개 변수에 지정된 MiniportInitializeEx 함수에서 드라이버를 다시 호출할 수 있도록 준비해야 합니다.

NdisMRegisterMiniportDriver가 성공적으로 반환된 후 DriverEntry에서 오류가 발생하는 경우 드라이버는 를 호출해야 합니다.DriverEntry가 반환되기 전에 NdisMDeregisterMiniportDriver 함수입니다. DriverEntry가 성공하면 드라이버는 MiniportDriverUnload 함수에서 NdisMDeregisterMiniportDriver를 호출해야 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 NDIS 6.0 이상에서 지원됩니다.
대상 플랫폼 유니버설
헤더 ndis.h(Ndis.h 포함)
라이브러리 Ndis.lib
IRQL PASSIVE_LEVEL
DDI 규정 준수 규칙 Irql_Miniport_Driver_Function(ndis)

추가 정보

미니포트 드라이버 초기화

DriverEntry

MiniportDriverUnload

MiniportInitializeEx

MiniportSetOptions

NDIS_MINIPORT_DRIVER_CHARACTERISTICS NdisMDeregisterMiniportDriver