WskCaptureProviderNPI 함수(wsk.h)

WskCaptureProviderNPI 함수는 WSK 하위 시스템으로부터 제공될 때 공급자 NPI(네트워크 프로그래밍 인터페이스)를 캡처합니다.

구문

NTSTATUS WskCaptureProviderNPI(
  [in]  PWSK_REGISTRATION WskRegistration,
  [in]  ULONG             WaitTimeout,
  [out] PWSK_PROVIDER_NPI WskProviderNpi
);

매개 변수

[in] WskRegistration

WSK 애플리케이션의 등록 인스턴스를 식별하는 WskRegister 에서 초기화된 메모리 위치에 대한 포인터입니다. 자세한 내용은 WSK_REGISTRATION 참조하세요.

[in] WaitTimeout

WskCaptureProviderNPI 함수가 WSK 공급자 NPI를 사용할 수 있을 때까지 대기할 수 있는 시간(밀리초)입니다. 또는 다음을 지정할 수 있습니다.

WSK_NO_WAIT

공급자 NPI를 사용할 수 없는 경우 이 함수에서 즉시 반환합니다.

WSK_INFINITE_WAIT

WSK 하위 시스템의 공급자 NPI를 사용할 수 있을 때까지 기다립니다.

이 매개 변수를 사용하는 방법에 대한 자세한 내용은 Winsock 커널 애플리케이션 등록을 참조하세요.

[out] WskProviderNpi

WSK 공급자가 반환한 NPI에 대한 포인터입니다. 이 WSK_PROVIDER_NPI 구조체에는 WSK 애플리케이션에서 호출할 수 있는 WSK 함수의 WSK 공급자 디스패치 테이블에 대한 포인터가 포함되어 있습니다.

반환 값

WskCaptureProviderNPI 는 다음 NTSTATUS 코드 중 하나를 반환합니다.

반환 코드 설명
STATUS_SUCCESS
공급자 NPI 캡처가 성공적으로 완료되었습니다.
STATUS_DEVICE_NOT_READY
공급자 NPI를 아직 사용할 수 없습니다.
STATUS_NOINTERFACE
WSK 클라이언트에서 요청한 버전은 WSK 하위 시스템에 의해 지원되지 않습니다.
기타 상태 코드
공급자 NPI 캡처가 실패했습니다.

설명

성공 코드를 반환하는 WskCaptureProviderNPI 호출마다 WskCaptureProviderNPI에 전달된 것과 동일한 WskRegistration 매개 변수를 사용하는 해당하는 WskReleaseProviderNPI 호출이 정확히 하나 있어야 합니다.

WskRegistration 블록이 해제되거나 덮어쓰여지지 않은 경우에만 WskCaptureProviderNPI를 WskDeregister에 호출한 후에 호출할 수 있습니다. WskDeregister가 호출되면 상태 코드 STATUS_DEVICE_NOT_READY WskCaptureProviderNPI에 대한 추가 호출이 실패하고, 공급자 NPI를 동시에 사용할 수 없게 되지 않는 한 WSK 공급자 NPI를 사용할 수 있게 되기를 기다리는 다른 스레드에서 차단된 기존 WskCaptureProviderNPI 호출도 상태 코드 STATUS_DEVICE_NOT_READY 즉시 반환됩니다.

WSK 하위 시스템에 WSK 애플리케이션을 연결하는 방법에 대한 자세한 내용은 Winsock 커널 애플리케이션 등록을 참조하세요.

WaitTimeout이 WSK_NO_WAIT 설정되지 않은 경우 WskCaptureProviderNPI 함수의 호출자는 IRQL = PASSIVE_LEVEL 실행되어야 합니다. 그렇지 않으면 호출자가 IRQL <= DISPATCH_LEVEL 실행되어야 합니다.

요구 사항

   
지원되는 최소 클라이언트 Windows Vista 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다.
대상 플랫폼 유니버설
헤더 wsk.h(Wsk.h 포함)
라이브러리 Netio.lib
IRQL PASSIVE_LEVEL(설명 섹션 참조)

참고 항목

WskDeregister

WskRegister

WskReleaseProviderNPI