NdisSetOptionalHandlers 함수(ndis.h)

NDIS 드라이버는 NdisSetOptionalHandlers 함수를 호출하여 드라이버 함수의 진입점을 설정하거나 변경할 수 있습니다.

구문

NDIS_STATUS NdisSetOptionalHandlers(
  NDIS_HANDLE                    NdisHandle,
  PNDIS_DRIVER_OPTIONAL_HANDLERS OptionalHandlers
);

매개 변수

NdisHandle

드라이버 또는 드라이버 instance 식별하는 NDIS 핸들입니다.

프로토콜 드라이버의 경우 ProtocolSetOptions 함수에 전달된 NdisDriverHandle 값 또는 NdisOpenAdapterEx 함수를 호출하여 얻은 NdisBindingHandle 값입니다.

미니포트 드라이버의 경우 MiniportSetOptions 함수에 전달된 NdisDriverHandle 값입니다.

필터 드라이버의 경우 FilterSetOptions 함수에 전달된 NdisDriverHandle 값 또는 FilterAttach 함수에 전달된 NdisFilterHandle 값입니다.

OptionalHandlers

다음 NDIS 구조체 중 하나에 대한 포인터입니다.

NDIS_CLIENT_CHIMNEY_OFFLOAD_GENERIC_CHARACTERISTICS NDIS_CLIENT_CHIMNEY_OFFLOAD_TCP_CHARACTERISTICS NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS NDIS_CO_CLIENT_OPTIONAL_HANDLERS NDIS_FILTER_PARTIAL_CHARACTERISTICS NDIS_MINIPORT_CO_CHARACTERISTICS NDIS_MINIPORT_PNP_CHARACTERISTICS

NDIS_MINIPORT_SS_CHARACTERISTICS

NDIS_NDK_PROVIDER_CHARACTERISTICS

NDIS_PROTOCOL_CO_CHARACTERISTICS NDIS_PROVIDER_CHIMNEY_OFFLOAD_GENERIC_CHARACTERISTICS NDIS_PROVIDER_CHIMNEY_OFFLOAD_TCP_CHARACTERISTICS NDIS_SHARED_MEMORY_PROVIDER_CHARACTERISTICS

반환 값

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

반환 코드 설명
NDIS_STATUS_SUCCESS

NdisSetOptionalHandlers는 드라이버 진입점을 설정하는 경우 NDIS_STATUS_SUCCESS 반환합니다.

NDIS_STATUS_RESOURCES

리소스가 부족하여 NdisSetOptionalHandlers가 실패했습니다.

NDIS_STATUS_NOT_SUPPORTED

미니포트 드라이버가 NDIS 6.0 이상을 지원하도록 지정하지 않았기 때문에 NdisSetOptionalHandlers가 실패했습니다. 미니포트 드라이버는 를 호출할 때 NDIS 버전을 지정합니다. NdisMRegisterMiniportDriver 함수.

NDIS_STATUS_FAILURE

이전 값이 적용되지 않으면 NdisSetOptionalHandlersNDIS_STATUS_FAILURE 반환합니다.

설명

NDIS 드라이버는 NdisSetOptionalHandlers 를 호출하여 기본 진입점을 덮어쓸 수 있습니다. OptionalHandlers에 전달된 구조체 형식은 드라이버 유형에 따라 달라집니다.

프로토콜 드라이버는 ProtocolSetOptions 함수의 컨텍스트에서 NdisSetOptionalHandlers 를 호출할 수 있습니다 . 옵션으로 프로토콜 드라이버는 ProtocolBindAdapterEx 함수 또는 에서 NdisSetOptionalHandlers를 호출할 수 있습니다.프로토콜 드라이버에 NdisOpenAdapterEx 함수의 유효한 핸들이 있는 후 ProtocolOpenAdapterCompleteEx 함수입니다.

이 경우 유효한 구조체는 다음과 같습니다.

NDIS_PROTOCOL_CO_CHARACTERISTICS NDIS_CO_CLIENT_OPTIONAL_HANDLERS NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS NDIS_SHARED_MEMORY_PROVIDER_CHARACTERISTICS NDIS_CLIENT_CHIMNEY_OFFLOAD_GENERIC_CHARACTERISTICS NDIS_CLIENT_CHIMNEY_OFFLOAD_TCP_CHARACTERISTICS

2개의 굴뚝 오프로드 구조에 대한 자세한 내용은 NDIS 6.0 TCP 굴뚝 오프로드 설명서를 참조하세요.

Miniport 드라이버는 MiniportSetOptions 함수의 컨텍스트에서 NdisSetOptionalHandlers를 호출합니다.

이 경우 유효한 구조체는 다음과 같습니다.

NDIS_MINIPORT_CO_CHARACTERISTICS NDIS_MINIPORT_PNP_CHARACTERISTICS

NDIS_MINIPORT_SS_CHARACTERISTICS

NDIS_NDK_PROVIDER_CHARACTERISTICS

NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS NDIS_SHARED_MEMORY_PROVIDER_CHARACTERISTICS NDIS_CLIENT_CHIMNEY_OFFLOAD_GENERIC_CHARACTERISTICS NDIS_CLIENT_CHIMNEY_OFFLOAD_TCP_CHARACTERISTICS

2개의 굴뚝 오프로드 구조에 대한 자세한 내용은 NDIS 6.0 TCP 굴뚝 오프로드 설명서를 참조하세요.

필터 드라이버는 FilterSetOptions 함수의 컨텍스트에서 NdisSetOptionalHandlers를 호출합니다.

현재 Windows 버전에는 선택적 필터 드라이버 서비스가 없습니다.

필터 드라이버는 필터 모듈 에 대해 NdisSetOptionalHandlers 를 호출할 수 있습니다. 필터 드라이버는 컨텍스트에서 NdisSetOptionalHandlers 를 호출합니다. FilterSetModuleOptions 함수입니다 .

이 경우 유효한 구조체는 다음과 같습니다.

NDIS_FILTER_PARTIAL_CHARACTERISTICS

NDIS_CLIENT_CHIMNEY_OFFLOAD_GENERIC_CHARACTERISTICS

NDIS_CLIENT_CHIMNEY_OFFLOAD_TCP_CHARACTERISTICS

NDIS_PROVIDER_CHIMNEY_OFFLOAD_GENERIC_CHARACTERISTICS

NDIS_PROVIDER_CHIMNEY_OFFLOAD_TCP_CHARACTERISTICS

4개의 굴뚝 오프로드 구조에 대한 자세한 내용은 NDIS 6.0 TCP 굴뚝 오프로드 설명서를 참조하세요.

요구 사항

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

추가 정보

FilterAttach

FilterRestart

FilterSetOptions

MiniportSetOptions

NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS NDIS_CO_CLIENT_OPTIONAL_HANDLERS NDIS_FILTER_PARTIAL_CHARACTERISTICS NDIS_MINIPORT_CO_CHARACTERISTICS NDIS_MINIPORT_PNP_CHARACTERISTICS NDIS_PROTOCOL_CO_CHARACTERISTICS NDIS_SHARED_MEMORY_PROVIDER_CHARACTERISTICS

NdisMRegisterMiniportDriver

NdisOpenAdapterEx

ProtocolBindAdapterEx

ProtocolOpenAdapterCompleteEx

ProtocolSetOptions