Compartilhar via


PROTOCOL_OPEN_ADAPTER_COMPLETE_EX função de retorno de chamada (ndis.h)

O NDIS chama a função ProtocolOpenAdapterCompleteEx de um driver de protocolo para concluir uma operação de adaptador aberto para a qual a função NdisOpenAdapterEx retornou NDIS_STATUS_PENDING.

Nota Você deve declarar a função usando o tipo PROTOCOL_OPEN_ADAPTER_COMPLETE_EX . Para obter mais informações, consulte a seção Exemplos a seguir.
 

Sintaxe

PROTOCOL_OPEN_ADAPTER_COMPLETE_EX ProtocolOpenAdapterCompleteEx;

void ProtocolOpenAdapterCompleteEx(
  [in] NDIS_HANDLE ProtocolBindingContext,
  [in] NDIS_STATUS Status
)
{...}

Parâmetros

[in] ProtocolBindingContext

Um identificador para uma área de contexto alocada pelo driver de protocolo. O driver de protocolo mantém as informações de contexto por associação nessa área de contexto. O driver forneceu esse identificador para o NDIS quando o driver chamou NdisOpenAdapterEx.

[in] Status

O status final da operação aberta para o driver de miniporto subjacente. Esse valor status será NDIS_STATUS_SUCCESS se a associação tiver sido estabelecida ou se qualquer erro status que o driver subjacente determinar.

Retornar valor

Nenhum

Comentários

A função ProtocolOpenAdapterCompleteEx é necessária. Um driver de protocolo chama a função NdisOpenAdapterEx de sua função ProtocolBindAdapterEx . O NDIS chama a função ProtocolOpenAdapterCompleteEx do driver depois que uma operação aberta pendente é concluída.

Se ProtocolBindAdapterEx estiver aguardando o NDIS chamar ProtocolOpenAdapterCompleteEx, essa função poderá simplesmente salvar a status e indicar que ela foi chamada (por exemplo, ela pode atualizar a área de contexto ProtocolBindingContext). Isso permite que a função ProtocolBindAdapterEx conclua a operação de associação.

Se a função ProtocolBindAdapterEx ainda não tiver feito isso, ProtocolOpenAdapterCompleteEx poderá alocar os recursos que o driver requer para a associação.

Se ProtocolBindAdapterEx retornou NDIS_STATUS_PENDING, ProtocolOpenAdapterCompleteEx poderá chamar o Função NdisCompleteBindAdapterEx para concluir a operação de associação. Nesse caso, ProtocolOpenAdapterCompleteEx passa NdisCompleteBindAdapterEx o identificador BindContext que o NDIS passou para ProtocolBindAdapterEx. Se o parâmetro Status indicar um erro, ProtocolOpenAdapterCompleteEx poderá liberar recursos de associação que foram configurados em ProtocolBindAdapterEx.

O NDIS chama ProtocolOpenAdapterCompleteEx em IRQL = PASSIVE_LEVEL.

Exemplos

Para definir uma função ProtocolOpenAdapterCompleteEx , primeiro você deve fornecer uma declaração de função que identifique o tipo de função que você está definindo. O Windows fornece um conjunto de tipos de função para drivers. Declarar uma função usando os tipos de função ajuda a Análise de Código para Drivers, SDV ( Verificador de Driver Estático ) e outras ferramentas de verificação a encontrar erros e é um requisito para escrever drivers para o sistema operacional Windows.

Por exemplo, para definir uma função ProtocolOpenAdapterCompleteEx chamada "MyOpenAdapterCompleteEx", use o tipo PROTOCOL_OPEN_ADAPTER_COMPLETE_EX conforme mostrado neste exemplo de código:

PROTOCOL_OPEN_ADAPTER_COMPLETE_EX MyOpenAdapterCompleteEx;

Em seguida, implemente sua função da seguinte maneira:

_Use_decl_annotations_
VOID
 MyOpenAdapterCompleteEx(
    NDIS_HANDLE  ProtocolBindingContext,
    NDIS_STATUS  Status
    )
  {...}

O tipo de função PROTOCOL_OPEN_ADAPTER_COMPLETE_EX é definido no arquivo de cabeçalho Ndis.h. Para identificar erros com mais precisão ao executar as ferramentas de análise de código, adicione a anotação Use_decl_annotations à sua definição de função. A anotação Use_decl_annotations garante que as anotações aplicadas ao tipo de função PROTOCOL_OPEN_ADAPTER_COMPLETE_EX no arquivo de cabeçalho sejam usadas. Para obter mais informações sobre os requisitos para declarações de função, consulte Declarando funções usando tipos de função de função para drivers NDIS.

Para obter informações sobre Use_decl_annotations, consulte Anotando o comportamento da função.

Requisitos

Requisito Valor
Cliente mínimo com suporte Com suporte no NDIS 6.0 e posterior.
Plataforma de Destino Windows
Cabeçalho ndis.h (inclua Ndis.h)
IRQL PASSIVE_LEVEL

Confira também

NdisCompleteBindAdapterEx

NdisOpenAdapterEx

ProtocolBindAdapterEx