WskCaptureProviderNPI 함수(wsk.h)

WskCaptureProviderNPI 함수는 WSK 하위 시스템으로부터 사용할 수 있게 되면 공급자 NPI(네트워크 프로그래밍 인터페이스)를 캡처합니다.

구문

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

매개 변수

[in] WskRegistration

WSK 애플리케이션의 등록 instance 식별하는 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 블록이 해제되거나 덮어쓰여지지 않은 경우에만 WskDeregister를 호출한 후에 WskCaptureProviderNPI를 호출할 수 있습니다. 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