Esempio n. 1
0
File: wmi.c Progetto: ms-iot/bsp
/*++

Routine Description:

    Registers with WMI as a data provider for this
    instance of the device

Arguments:

    Device - Handle to the mini Uart device

Return Value:
    Status

--*/
_Use_decl_annotations_
NTSTATUS
SerialWmiRegistration(
    WDFDEVICE Device
)
{
    NTSTATUS status = STATUS_SUCCESS;
    PSERIAL_DEVICE_EXTENSION devExt;

    PAGED_CODE();

    TraceEvents(TRACE_LEVEL_INFORMATION, DBG_WMI, "++SerialWmiRegistration\r\n");

    devExt = SerialGetDeviceExtension (Device);

    // Fill in wmi perf data (all zero's)

    RtlZeroMemory(&devExt->WmiPerfData, sizeof(devExt->WmiPerfData));

    status = SerialWmiRegisterInstance(Device,
                                       &MSSerial_PortName_GUID,
                                       0,
                                       EvtWmiQueryPortName);
    if (!NT_SUCCESS(status)) {
        TraceEvents(TRACE_LEVEL_ERROR, DBG_WMI,
                    "SerialWmiRegistration() SerialWmiRegisterInstance(serGUID) failed. Err=%Xh\r\n",
                    status);
        goto EndWmiReg;
    }

    status = SerialWmiRegisterInstance(Device,
                                       &MSSerial_CommInfo_GUID,
                                       sizeof(SERIAL_WMI_COMM_DATA),
                                       EvtWmiQueryPortCommData);
    if (!NT_SUCCESS(status)) {
        TraceEvents(TRACE_LEVEL_ERROR, DBG_WMI,
                    "SerialWmiRegistration() SerialWmiRegisterInstance(WMICOMDA) failed. Err=%Xh\r\n",
                    status);
        goto EndWmiReg;
    }

    status = SerialWmiRegisterInstance(Device,
                                       &MSSerial_HardwareConfiguration_GUID,
                                       sizeof(SERIAL_WMI_HW_DATA),
                                       EvtWmiQueryPortHWData);
    if (!NT_SUCCESS(status)) {
        TraceEvents(TRACE_LEVEL_ERROR, DBG_WMI,
                    "SerialWmiRegistration() SerialWmiRegisterInstance(WMIHWDAT) failed. Err=%Xh\r\n",
                    status);
        return status;
    }

    status = SerialWmiRegisterInstance(Device,
                                       &MSSerial_PerformanceInformation_GUID,
                                       sizeof(SERIAL_WMI_PERF_DATA),
                                       EvtWmiQueryPortPerfData);
    if (!NT_SUCCESS(status)) {
        TraceEvents(TRACE_LEVEL_ERROR, DBG_WMI,
                    "SerialWmiRegistration() SerialWmiRegisterInstance(WMIPERF) failed. Err=%Xh\r\n",
                    status);
        goto EndWmiReg;
    }

    status = SerialWmiRegisterInstance(Device,
                                       &MSSerial_CommProperties_GUID,
                                       sizeof(SERIAL_COMMPROP) + sizeof(ULONG),
                                       EvtWmiQueryPortPropData);

    if (!NT_SUCCESS(status)) {
        TraceEvents(TRACE_LEVEL_ERROR, DBG_WMI,
                    "SerialWmiRegistration() SerialWmiRegisterInstance(COMMPRPOP) failed. Err=%Xh\r\n",
                    status);
    }

EndWmiReg:
    TraceEvents(TRACE_LEVEL_INFORMATION, DBG_WMI,
                "--SerialWmiRegistration()=%Xh\r\n",
                status);
    return status;
}
Esempio n. 2
0
File: wmi.c Progetto: kcrazy/winekit
NTSTATUS
SerialWmiRegistration(
    WDFDEVICE      Device
)
/*++
Routine Description

    Registers with WMI as a data provider for this
    instance of the device

--*/
{
    NTSTATUS        status = STATUS_SUCCESS;
    PSERIAL_DEVICE_EXTENSION pDevExt;

    PAGED_CODE();

    pDevExt = SerialGetDeviceExtension (Device);

    //
    // Fill in wmi perf data (all zero's)
    //
    RtlZeroMemory(&pDevExt->WmiPerfData, sizeof(pDevExt->WmiPerfData));

    status = SerialWmiRegisterInstance(Device,
                                       &MSSerial_PortName_GUID,
                                       0,
                                       EvtWmiQueryPortName);
    if (!NT_SUCCESS(status)) {
        return status;
    }

    status = SerialWmiRegisterInstance(Device,
                                       &MSSerial_CommInfo_GUID,
                                       sizeof(SERIAL_WMI_COMM_DATA),
                                       EvtWmiQueryPortCommData);
    if (!NT_SUCCESS(status)) {
        return status;
    }

    status = SerialWmiRegisterInstance(Device,
                                       &MSSerial_HardwareConfiguration_GUID,
                                       sizeof(SERIAL_WMI_HW_DATA),
                                       EvtWmiQueryPortHWData);
    if (!NT_SUCCESS(status)) {
        return status;
    }

    status = SerialWmiRegisterInstance(Device,
                                       &MSSerial_PerformanceInformation_GUID,
                                       sizeof(SERIAL_WMI_PERF_DATA),
                                       EvtWmiQueryPortPerfData);
    if (!NT_SUCCESS(status)) {
        return status;
    }

    status = SerialWmiRegisterInstance(Device,
                                       &MSSerial_CommProperties_GUID,
                                       sizeof(SERIAL_COMMPROP) + sizeof(ULONG),
                                       EvtWmiQueryPortPropData);

    if (!NT_SUCCESS(status)) {
        return status;
    }

    return status;
}