Compartilhar via


Função AcxFactoryCircuitCreate (acxcircuit.h)

A função AcxFactoryCircuitCreate é usada para criar um ACXFACTORYCIRCUIT.

Sintaxe

NTSTATUS AcxFactoryCircuitCreate(
  WDFDEVICE               Device,
  PWDF_OBJECT_ATTRIBUTES  Attributes,
  PACXFACTORYCIRCUIT_INIT *Config,
  ACXFACTORYCIRCUIT       *Factory
);

Parâmetros

Device

Um objeto WDFDEVICE (descrito em Resumo de Objetos da Estrutura) que será associado ao circuito.

Attributes

Atributos adicionais definidos usando um WDF_OBJECT_ATTRIBUTES que são usados para definir os valores de vários objetos: limpar e destruir retornos de chamada, tipo de contexto e especificar seu objeto pai WDF.

Config

A estrutura ACXFACTORYCIRCUIT_INIT que define a inicialização da fábrica de circuitos. ACXFACTORYCIRCUIT_INIT é um objeto opaco usado para inicialização de fábrica de circuitos. Use AcxFactoryCircuitInitAllocate para inicializar a estrutura ACXFACTORYCIRCUIT_INIT.

Factory

Um ponteiro para um local que recebe um identificador para o novo objeto ACXFACTORYCIRCUIT. Para obter mais informações sobre objetos ACX, consulte Resumo de objetos ACX.

Retornar valor

Retorna STATUS_SUCCESS se a chamada foi bem-sucedida. Caso contrário, ele retornará um código de erro apropriado. Para obter mais informações, consulte Usando valores NTSTATUS.

Comentários

O ACXFACTORYCIRCUIT é usado pela estrutura ACX para ACXCIRCUITs 'sob demanda'. O ACX pedirá ao ACXFACTORYCIRCUIT para criar um novo circuito quando um ponto de extremidade exigir um.

O ACXFACTORYCIRCUIT é usado em um ponto de extremidade de vários circuitos. Um circuito criado por um ACXFACTORYCIRCUIT não pode ser o circuito 'core' para o ponto de extremidade, ou seja, o circuito que fornece a identidade do ponto de extremidade.

Um ACXFACTORYCIRCUIT tem uma fila WDF dedicada. Para obter mais informações sobre filas do WDF, consulte Objetos de fila de estrutura.

Exemplo

O uso de exemplo é mostrado abaixo.

    NTSTATUS                                        status;
    WDF_OBJECT_ATTRIBUTES                           attributes;
    ACXFACTORYCIRCUIT                               factory;
    PACXFACTORYCIRCUIT_INIT                         factoryInit = NULL;
    SDCAXU_FACTORYCIRCUIT_CONTEXT *                 factoryCtx;
    ACX_FACTORY_CIRCUIT_OPERATION_CALLBACKS         operationCallbacks;

    //
    // Get a FactoryCircuitInit structure.
    //
    factoryInit = AcxFactoryCircuitInitAllocate(Device);

    //
    // Add factory identifiers.
    //
    AcxFactoryCircuitInitSetComponentId(factoryInit, &SDCAXU_FACTORY_GUID);
    AcxFactoryCircuitInitAssignCategories(factoryInit, &SDCAXU_FACTORY_CATEGORY, 1);
    AcxFactoryCircuitInitAssignName(factoryInit, &s_FactoryName);

    //
    // Assign the circuit's operation-callbacks.
    //
    ACX_FACTORY_CIRCUIT_OPERATION_CALLBACKS_INIT(&operationCallbacks);
    operationCallbacks.EvtAcxFactoryCircuitCreateCircuitDevice = SdcaXu_EvtAcxFactoryCircuitCreateCircuitDevice;
    operationCallbacks.EvtAcxFactoryCircuitCreateCircuit = SdcaXu_EvtAcxFactoryCircuitCreateCircuit;
    AcxFactoryCircuitInitSetOperationCallbacks(factoryInit, &operationCallbacks);

    //
    // Create the factory circuit.
    //
    WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(&attributes, SDCAXU_FACTORYCIRCUIT_CONTEXT);
    attributes.ParentObject = Device;
    status = AcxFactoryCircuitCreate(Device, &attributes, &factoryInit, &factory);


Requisitos do ACX

Versão mínima do ACX: 1.0

Para obter mais informações sobre versões do ACX, consulte Visão geral da versão do ACX.

Requisitos

Requisito Valor
Cabeçalho acxcircuit.h
IRQL PASSIVE_LEVEL

Confira também