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 |