Функция AcxFactoryCircuitCreate (acxcircuit.h)
Функция AcxFactoryCircuitCreate используется для создания ACXFACTORYCIRCUIT.
Синтаксис
NTSTATUS AcxFactoryCircuitCreate(
WDFDEVICE Device,
PWDF_OBJECT_ATTRIBUTES Attributes,
PACXFACTORYCIRCUIT_INIT *Config,
ACXFACTORYCIRCUIT *Factory
);
Параметры
Device
Объект WDFDEVICE (описан в разделе Сводка объектов платформы), который будет связан с каналом.
Attributes
Дополнительные атрибуты, определенные с помощью WDF_OBJECT_ATTRIBUTES , которые используются для задания значений различных объектов: очистки и уничтожения обратных вызовов, типа контекста и указания его родительского объекта WDF.
Config
Структура ACXFACTORYCIRCUIT_INIT, которая определяет инициализацию фабрики цепи. ACXFACTORYCIRCUIT_INIT — это непрозрачный объект, используемый для инициализации фабрики цепи. Используйте AcxFactoryCircuitInitAllocate для инициализации структуры ACXFACTORYCIRCUIT_INIT.
Factory
Указатель на расположение, которое получает дескриптор нового объекта ACXFACTORYCIRCUIT. Дополнительные сведения об объектах ACX см. в разделе Сводка по объектам ACX.
Возвращаемое значение
Возвращает значение STATUS_SUCCESS
, если вызов был выполнен успешно. В противном случае возвращается соответствующий код ошибки. Дополнительные сведения см. в разделе Использование значений NTSTATUS.
Комментарии
ACXFACTORYCIRCUIT используется платформой ACX для ACXCIRCUITs по запросу. ACX предложит ACXFACTORYCIRCUIT создать новый канал, если он требуется для конечной точки.
ACXFACTORYCIRCUIT используется в многоканальной конечной точке. Канал, созданный ACXFACTORYCIRCUIT, не может быть основным каналом для конечной точки, т. е. каналом, который предоставляет удостоверение конечной точки.
ACXFACTORYCIRCUIT имеет выделенную очередь WDF. Дополнительные сведения об очередях WDF см. в разделе Объекты очередей платформы.
Пример
Ниже приведен пример использования.
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);
Требования к ACX
Минимальная версия ACX: 1.0
Дополнительные сведения о версиях ACX см. в статье Обзор версий ACX.
Требования
Требование | Значение |
---|---|
Заголовок | acxcircuit.h |
IRQL | PASSIVE_LEVEL |