функция обратного вызова EVT_ACX_CIRCUIT_COMPOSITE_DEINITIALIZE (acxcircuit.h)
Обратный вызов EVT_ACX_CIRCUIT_COMPOSITE_CIRCUIT_DEINITIALIZE используется драйвером для де-инициализации составного канала при отмене инициализации диспетчером ACX.
Синтаксис
EVT_ACX_CIRCUIT_COMPOSITE_DEINITIALIZE EvtAcxCircuitCompositeDeinitialize;
void EvtAcxCircuitCompositeDeinitialize(
WDFDEVICE Device,
ACXCIRCUIT Circuit,
ACXOBJECTBAG CompositeProperties
)
{...}
Параметры
Device
Объект WDFDEVICE (описанный в сводке объектов Платформы), связанный с указанным ACXCIRCUIT.
Circuit
Объект ACXCIRCUIT, деинициализированный. Дополнительные сведения о объектах ACX см. в сводке по объектам ACX.
CompositeProperties
Необязательный дескриптор для CircuitProperties. Это необязательный объект ACXOBJECTBAG для свойств ACXCIRCUIT.
Возвращаемое значение
Никакой
Замечания
ACX может вызывать этот обратный вызов для составного ACXCIRCUIT, только если связанная WDFDEVICE присутствует. То есть, если связанный WDFDEVICE удален сюрпризом (SR), ACX не сможет вызвать обратный вызов, так как связанные с ним интерфейсы PnP отключены.
Пример
В этом примере кода показано, как драйвер получает свойство канала из указанного контейнера объектов объекта канала.
Ниже показан пример использования.
VOID
DspR_EvtCircuitCompositeDeinitialize(
_In_ WDFDEVICE Device,
_In_ ACXCIRCUIT Circuit,
_In_opt_ ACXOBJECTBAG CompositeProperties
)
{
DECLARE_CONST_ACXOBJECTBAG_SYSTEM_PROPERTY_NAME(UniqueID);
NTSTATUS status = STATUS_SUCCESS;
GUID uniqueId = {0};
PAGED_CODE();
UNREFERENCED_PARAMETER(Device);
UNREFERENCED_PARAMETER(Circuit);
if (CompositeProperties)
{
status = AcxObjectBagRetrieveGuid(CompositeProperties, &UniqueID, &uniqueId);
if (!NT_SUCCESS(status))
{
// Log error.
}
}
}
Требования к ACX
минимальная версия ACX: 1.0
Дополнительные сведения о версиях ACX см. в обзоре версий ACX.
Требования
Требование | Ценность |
---|---|
заголовка | acxcircuit.h |
IRQL | PASSIVE_LEVEL |