NPI_CLIENT_ATTACH_PROVIDER_FN 콜백 함수(netioddk.h)

클라이언트 모듈의 ClientAttachProvider 콜백 함수는 클라이언트 모듈을 공급자 모듈에 연결합니다.

구문

NPI_CLIENT_ATTACH_PROVIDER_FN NpiClientAttachProviderFn;

NTSTATUS NpiClientAttachProviderFn(
  [in] HANDLE NmrBindingHandle,
  [in] PVOID ClientContext,
  [in] PNPI_REGISTRATION_INSTANCE ProviderRegistrationInstance
)
{...}

매개 변수

[in] NmrBindingHandle

NMR에서 클라이언트 모듈과 공급자 모듈 간의 바인딩을 나타내는 데 사용하는 핸들입니다.

[in] ClientContext

클라이언트 모듈의 등록 컨텍스트에 대한 포인터입니다. 클라이언트 모듈은 NmrRegisterClient 함수를 호출하여 NMR에 등록할 때 이 포인터를 NMR에 전달합니다.

[in] ProviderRegistrationInstance

에 대한 포인터 NPI_REGISTRATION_INSTANCE 구조체입니다. 이 구조에는 공급자 모듈의 등록 데이터가 포함됩니다.

반환 값

클라이언트 모듈의 ClientAttachProvider 콜백 함수는 다음 NTSTATUS 코드 중 하나를 반환합니다.

반환 코드 설명
STATUS_SUCCESS
클라이언트 모듈과 공급자 모듈이 서로 성공적으로 연결되었습니다.
STATUS_NOINTERFACE
클라이언트 모듈이 공급자 모듈에 연결되지 않았거나 공급자 모듈이 클라이언트 모듈에 연결되지 않았습니다.
기타 상태 코드
오류가 발생했습니다.

설명

클라이언트 모듈이 NMR에 등록되면 NMR은 클라이언트 모듈이 클라이언트 모듈로 등록된 동일한 NPI의 공급자로 등록된 각 공급자 모듈에 대해 클라이언트 모듈의 ClientAttachProvider 콜백 함수를 한 번 호출합니다.

또한 NMR은 새 네트워크 모듈이 클라이언트 모듈이 클라이언트로 등록된 동일한 NPI의 공급자로 등록될 때마다 클라이언트 모듈의 ClientAttachProvider 콜백 함수를 호출합니다.

클라이언트 모듈은 공급자 모듈의 등록 데이터를 검사할 수 있습니다. 이 데이터는 ProviderRegistrationInstance 매개 변수가 가리키는 구조에 있습니다. 클라이언트 모듈은 이 데이터를 사용하여 공급자 모듈에 연결할지 여부를 결정합니다.

  • 클라이언트 모듈이 공급자 모듈에 연결되도록 결정하는 경우 ClientAttachProvider 콜백 함수는 NmrClientAttachProvider 함수를 호출하여 첨부 파일 프로세스를 계속합니다. 이 경우 ClientAttachProvider 콜백 함수는 에 대한 호출에서 반환되는 상태 코드를 반환해야 합니다. NmrClientAttachProvider 함수입니다.
  • 클라이언트 모듈이 공급자 모듈에 연결하지 않을 것으로 판단되면 ClientAttachProvider 콜백 함수는 STATUS_NOINTERFACE 반환해야 합니다.
클라이언트 모듈이 공급자 모듈에 성공적으로 연결되면 NmrBindingHandle 매개 변수에 제공된 핸들을 저장해야 합니다. 클라이언트 모듈은 이 핸들을 매개 변수로 전달합니다. NmrClientDetachProviderComplete 함수는 공급자 모듈에서 분리됩니다.

NMR은 IRQL = PASSIVE_LEVEL 클라이언트 모듈의 ClientAttachProvider 콜백 함수를 호출합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다.
대상 플랫폼 Windows
헤더 netioddk.h(Wsk.h 포함)
IRQL PASSIVE_LEVEL

추가 정보

ClientDetachProvider

NPI_CLIENT_CHARACTERISTICS

NPI_REGISTRATION_INSTANCE

NmrClientAttachProvider

NmrClientDetachProviderComplete

NmrRegisterClient