функция обратного вызова 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.
Возвращаемое значение
None
Remarks
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 |