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

A função MiniportCoCreateVc é necessária para miniportos orientados à conexão. MiniportCoCreateVc é chamado pelo NDIS para indicar ao driver de miniporto que uma nova VC está sendo criada.

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

Sintaxe

MINIPORT_CO_CREATE_VC MiniportCoCreateVc;

NDIS_STATUS MiniportCoCreateVc(
  [in]  NDIS_HANDLE MiniportAdapterContext,
  [in]  NDIS_HANDLE NdisVcHandle,
  [out] PNDIS_HANDLE MiniportVcContext
)
{...}

Parâmetros

[in] MiniportAdapterContext

Especifica o identificador para uma área de contexto alocada pelo driver de miniporto na qual o driver de miniporto mantém informações de estado sobre essa instância do adaptador. O driver de miniporto forneceu esse identificador para o NDIS chamando NdisMSetMiniportAttributes de sua Função MiniportInitializeEx .

[in] NdisVcHandle

Especifica um identificador, fornecido pelo NDIS, que identifica exclusivamente a VC que está sendo criada. Esse identificador é opaco para o driver de miniporto e reservado para uso da biblioteca NDIS.

[out] MiniportVcContext

Especifica, na saída, um identificador para uma área de contexto fornecida pelo driver de miniporto na qual o driver de miniporto mantém o estado sobre a VC.

Retornar valor

Código de retorno Descrição
NDIS_STATUS_SUCCESS
Indica que o driver de miniporte alocou com êxito todos os recursos necessários e se preparou para lidar com solicitações para a VC recém-criada.
NDIS_STATUS_RESOURCES
Indica que o gerenciador de chamadas não pôde obter recursos alocados dinamicamente necessários para que ele operasse na nova VC.

Comentários

MiniportCoCreateVc deve ser gravado como uma função síncrona e não pode, em nenhuma circunstância, retornar NDIS_STATUS_PENDING sem causar uma falha em todo o sistema.

MiniportCoCreateVc aloca todos os recursos necessários que o driver de miniporto requer para manter informações de estado sobre a VC. Os recursos podem incluir, mas não se limitam a buffers de memória, eventos, estruturas de dados e outros recursos semelhantes.

Depois de alocar todos os recursos necessários, o driver de miniporto deve inicializar os recursos em um estado utilizável e retornar um ponteiro para a área de estado em MiniportVcContext. O identificador é definido desreferenciando o identificador e armazenando um ponteiro para o buffer de estado como o valor do identificador. Por exemplo:

*MiniportVcContext = SomeBuffer;

Os drivers de miniporto devem armazenar o identificador para o VC, NdisVcHandle, em sua área de estado, pois é um parâmetro necessário para outras rotinas de biblioteca do NDIS que são chamadas posteriormente pelo driver de miniport.

Exemplos

Para definir uma função MiniportCoCreateVc , 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 gravar drivers para o sistema operacional Windows.

Por exemplo, para definir uma função MiniportCoCreateVc chamada "MyCoCreateVc", use o tipo MINIPORT_CO_CREATE_VC conforme mostrado neste exemplo de código:

MINIPORT_CO_CREATE_VC MyCoCreateVc;

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

_Use_decl_annotations_
NDIS_STATUS
 MyCoCreateVc(
    NDIS_HANDLE  MiniportAdapterContext,
    NDIS_HANDLE  NdisVcHandle,
    PNDIS_HANDLE  MiniportVcContext
    )
  {...}

O tipo de função MINIPORT_CO_CREATE_VC é 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 MINIPORT_CO_CREATE_VC 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 para drivers NDIS 6.0 e NDIS 5.1 (confira MiniportCoCreateVc (NDIS 5.1)) no Windows Vista. Com suporte para drivers NDIS 5.1 (consulte MiniportCoCreateVc (NDIS 5.1)) no Windows XP.
Plataforma de Destino Windows
Cabeçalho ndis.h (inclua Ndis.h)
IRQL <= DISPATCH_LEVEL

Confira também

MiniportInitializeEx

NdisMSetMiniportAttributes