NdisOpenAdapterEx 함수(ndis.h)
프로토콜 드라이버는 ProtocolBindAdapterEx 함수에서 NdisOpenAdapterEx 함수를 호출하여 프로토콜 드라이버와 기본 드라이버 간에 바인딩을 설정합니다.
구문
NDIS_STATUS NdisOpenAdapterEx(
[in] NDIS_HANDLE NdisProtocolHandle,
[in] NDIS_HANDLE ProtocolBindingContext,
[in] PNDIS_OPEN_PARAMETERS OpenParameters,
[in] NDIS_HANDLE BindContext,
[out] PNDIS_HANDLE NdisBindingHandle
);
매개 변수
[in] NdisProtocolHandle
에서 반환하는 핸들입니다. NdisRegisterProtocolDriver 함수.
[in] ProtocolBindingContext
프로토콜 드라이버가 이 바인딩에 대한 상태 정보를 유지하는 호출자 제공 컨텍스트 영역에 대한 핸들입니다.
[in] OpenParameters
호출자가 설정한 NDIS_OPEN_PARAMETERS 구조체에 대한 포인터입니다.
[in] BindContext
바인딩 작업의 NDIS 컨텍스트 영역을 식별하는 핸들입니다. NDIS는 ProtocolBindAdapterEx 함수의 BindContext 매개 변수에 이 핸들을 전달했습니다.
[out] NdisBindingHandle
호출자가 제공한 변수에 대한 포인터입니다. NDIS는 OpenParameters 의 AdapterName 멤버에 지정된 미니포트 어댑터와 호출자 간의 바인딩을 식별하는 핸들을 NdisBindingHandle에 씁니다. 호출자는 NdisXxx 함수에 대한 후속 호출에서 이 핸들을 사용합니다.
반환 값
NdisOpenAdapterEx는 다음 상태 값 중 하나를 반환합니다.
반환 코드 | 설명 |
---|---|
|
NdisOpenAdapterEx 에서 열기 작업을 성공적으로 완료했습니다. |
|
NdisOpenAdapterEx 가 열기 작업을 완료하지 않았습니다. NDIS는 나중에 프로토콜 드라이버의 를 호출합니다. ProtocolOpenAdapterCompleteEx 함수를 사용하여 열기 작업을 완료합니다. |
|
리소스가 부족하여 NdisOpenAdapterEx가 실패했습니다. |
|
OpenParameters의 AdapterName 멤버에 지정된 미니포트 어댑터를 찾을 수 없어 NdisOpenAdapterEx가 실패했습니다. |
|
OpenParameters의 MediumArray 멤버에 지정된 배열에 NDIS 또는 기본 드라이버가 지원하는 중간 형식이 포함되어 있지 않아 NdisOpenAdapterEx가 실패했습니다. |
|
NdisOpenAdapterEx 는 이전 목록에 있는 것 이외의 이유로 실패했습니다. |
설명
프로토콜 드라이버는 ProtocolBindAdapterEx 함수에서 NdisOpenAdapterEx를 호출해야 합니다. NDIS는 ProtocolBindAdapterEx 컨텍스트 외부에서 NdisOpenAdapterEx를 호출하지 못합니다.
NdisOpenAdapterEx가 NDIS_STATUS_PENDING 반환하는 경우 호출자는 NDIS가 다음을 호출할 때까지 OpenParameters의 NdisBindingHandle 및 SelectedMediumIndex 멤버의 값을 사용하지 않아야 합니다. ProtocolOpenAdapterCompleteEx 함수입니다.
AdapterName의 문자열은 NdisOpenAdapterEx가 반환될 때까지만 유효해야 합니다. 따라서 NdisOpenAdapterEx 가 NDIS_STATUS_PENDING 반환하는 경우 NdisOpenAdapterEx 가 반환된 후에도 드라이버가 이 문자열을 계속 유지할 필요가 없습니다.
열기 작업이 성공적으로 완료되면 호출자는 Ndis Xxx 함수에 대한 후속 호출에서 NdisBindingHandle에서 NDIS가 반환한 값을 사용할 수 있습니다. 호출자는 OpenParameters 매개 변수의 SelectedMediumIndex 멤버를 사용하여 기본 드라이버와 상호 작용하는 방법을 결정할 수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | NDIS 6.0 이상에서 지원됩니다. |
대상 플랫폼 | 데스크톱 |
머리글 | ndis.h(Ndis.h 포함) |
라이브러리 | Ndis.lib |
IRQL | PASSIVE_LEVEL |
DDI 규정 준수 규칙 | Irql_Protocol_Driver_Function(ndis) |