Compartilhar via


Função WskCaptureProviderNPI (wsk.h)

A função WskCaptureProviderNPI captura uma NPI (Interface de Programação de Rede) do provedor quando ela fica disponível no subsistema WSK.

Sintaxe

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

Parâmetros

[in] WskRegistration

Um ponteiro para o local de memória inicializado pelo WskRegister que identifica a instância de registro de um aplicativo WSK. Para obter mais informações, consulte WSK_REGISTRATION.

[in] WaitTimeout

O tempo, em milissegundos, em que a função WskCaptureProviderNPI pode aguardar até que o NPI do provedor WSK fique disponível. Como alternativa, o seguinte pode ser especificado:

WSK_NO_WAIT

Retorne dessa função imediatamente se o NPI do provedor não estiver disponível.

WSK_INFINITE_WAIT

Aguarde até que o NPI do provedor esteja disponível no subsistema WSK.

Para obter mais informações sobre como esse parâmetro é usado, consulte Registrando um aplicativo de kernel Winsock.

[out] WskProviderNpi

Um ponteiro para o NPI retornado pelo provedor WSK. Essa estrutura WSK_PROVIDER_NPI contém um ponteiro para a tabela de expedição do provedor WSK de funções WSK que o aplicativo WSK pode chamar.

Retornar valor

WskCaptureProviderNPI retorna um dos seguintes códigos NTSTATUS:

Código de retorno Descrição
STATUS_SUCCESS
A captura de NPI do provedor foi concluída com êxito.
STATUS_DEVICE_NOT_READY
O NPI do provedor ainda não estava disponível.
STATUS_NOINTERFACE
A versão solicitada pelo cliente WSK não é compatível com o subsistema WSK.
Outros códigos de status
Falha na captura de NPI do provedor.

Comentários

Para cada chamada para WskCaptureProviderNPI que retorna um código de êxito, deve haver exatamente uma chamada WskReleaseProviderNPI correspondente que usa o mesmo parâmetro WskRegistration que foi passado para WskCaptureProviderNPI.

WskCaptureProviderNPI poderá ser chamado depois que uma chamada for feita para WskDeregister somente se o bloco WskRegistration não for liberado ou substituído. Depois que WskDeregister for chamado, todas as chamadas adicionais para WskCaptureProviderNPI falharão com status STATUS_DEVICE_NOT_READY de código e, a menos que o NPI do provedor se torne disponível simultaneamente, todas as chamadas WskCaptureProviderNPI existentes bloqueadas em outros threads aguardando que o NPI do provedor WSK fique disponível também retornarão imediatamente com status código STATUS_DEVICE_NOT_READY.

Para obter mais informações sobre como anexar um aplicativo WSK ao subsistema WSK, consulte Registrando um aplicativo de kernel Winsock.

Os chamadores da função WskCaptureProviderNPI devem estar em execução em IRQL = PASSIVE_LEVEL se WaitTimeout não estiver definido como WSK_NO_WAIT; caso contrário, os chamadores devem estar em execução em IRQL <= DISPATCH_LEVEL.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível no Windows Vista e versões posteriores dos sistemas operacionais Windows.
Plataforma de Destino Universal
Cabeçalho wsk.h (inclua Wsk.h)
Biblioteca Netio.lib
IRQL PASSIVE_LEVEL (consulte a seção Comentários)

Confira também

WskDeregister

WskRegister

WskReleaseProviderNPI