Compartilhar via


Função WskCaptureProviderNPI (wsk.h)

A função WskCaptureProviderNPI captura um provedor NPI (Network Programming Interface) quando ele fica disponível no subsistema do 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 por 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 do 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 kernel Winsock.

[out] WskProviderNpi

Um ponteiro para o NPI retornado pelo provedor do WSK. Essa estrutura de 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.

Valor de retorno

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
Não há suporte para a versão solicitada pelo cliente WSK pelo subsistema WSK.
Outros códigos de status
Falha na captura de NPI do provedor.

Observações

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

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

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

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

Requisitos

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

Consulte também

WskDeregister

WskRegister

WskReleaseProviderNPI