625 lines
22 KiB
C
625 lines
22 KiB
C
|
#ifndef _1394wmi_w_
|
||
|
#define _1394wmi_w_
|
||
|
|
||
|
// MS1394_BusDriverInformation - BUS1394_WMI_STD_DATA
|
||
|
// IEEE1394 Standard Bus Driver Information
|
||
|
#define GUID_BUS1394_WMI_STD_DATA \
|
||
|
{ 0x099132c8,0x68d9,0x4f94, { 0xb5,0xa6,0xa7,0xa7,0xe3,0x49,0x0e,0xc8 } }
|
||
|
|
||
|
DEFINE_GUID(MS1394_BusDriverInformationGuid, \
|
||
|
0x099132c8,0x68d9,0x4f94,0xb5,0xa6,0xa7,0xa7,0xe3,0x49,0x0e,0xc8);
|
||
|
|
||
|
|
||
|
typedef struct _BUS1394_WMI_STD_DATA
|
||
|
{
|
||
|
// Bus Driver DDI Version.
|
||
|
ULONG BusDDIVersion;
|
||
|
#define BUS1394_WMI_DDI_VERSION_SIZE sizeof(ULONG)
|
||
|
#define BUS1394_WMI_DDI_VERSION_ID 1
|
||
|
|
||
|
// Maximum phy speed bus driver can handle.
|
||
|
ULONG MaxPhySpeed;
|
||
|
#define BUS1394_WMI_MAX_PHY_SPEED_SUPPORTED_SIZE sizeof(ULONG)
|
||
|
#define BUS1394_WMI_MAX_PHY_SPEED_SUPPORTED_ID 2
|
||
|
|
||
|
// EUI-64 for Local Host COntroller of this bus.
|
||
|
ULONGLONG LocalHostControllerEUI;
|
||
|
#define BUS1394_WMI_CONTROLLER_EUI_64_SIZE sizeof(ULONGLONG)
|
||
|
#define BUS1394_WMI_CONTROLLER_EUI_64_ID 3
|
||
|
|
||
|
// Configuration Rom Size.
|
||
|
ULONG ConfigRomSize;
|
||
|
#define BUS1394_WMI_CONFIG_ROM_SIZE_SIZE sizeof(ULONG)
|
||
|
#define BUS1394_WMI_CONFIG_ROM_SIZE_ID 4
|
||
|
|
||
|
// Congiguration Rom Bus driver exposes on the bus.
|
||
|
UCHAR ConfigRom[1024];
|
||
|
#define BUS1394_WMI_CONFIG_ROM_SIZE sizeof(UCHAR[1024])
|
||
|
#define BUS1394_WMI_CONFIG_ROM_ID 5
|
||
|
|
||
|
// Reserved for future use
|
||
|
BOOLEAN Reserved1;
|
||
|
#define BUS1394_WMI_STD_DATA_Reserved1_SIZE sizeof(BOOLEAN)
|
||
|
#define BUS1394_WMI_STD_DATA_Reserved1_ID 6
|
||
|
|
||
|
} BUS1394_WMI_STD_DATA, *PBUS1394_WMI_STD_DATA;
|
||
|
|
||
|
// MS1394_BusInformation - BUS1394_WMI_BUS_DATA
|
||
|
// IEEE1394 Bus Information
|
||
|
#define GUID_BUS1394_WMI_BUS_DATA \
|
||
|
{ 0x21dab3c0,0x1452,0x49d0, { 0xbf,0x25,0xc9,0x77,0xe1,0x1e,0xe7,0xe9 } }
|
||
|
|
||
|
DEFINE_GUID(MS1394_BusInformationGuid, \
|
||
|
0x21dab3c0,0x1452,0x49d0,0xbf,0x25,0xc9,0x77,0xe1,0x1e,0xe7,0xe9);
|
||
|
|
||
|
|
||
|
typedef struct _BUS1394_WMI_BUS_DATA
|
||
|
{
|
||
|
// Bus Generation.
|
||
|
ULONG Generation;
|
||
|
#define BUS1394_WMI_GENERATION_COUNT_SIZE sizeof(ULONG)
|
||
|
#define BUS1394_WMI_GENERATION_COUNT_ID 1
|
||
|
|
||
|
// Local Host Self ID packet
|
||
|
ULONG LocalHostSelfId[4];
|
||
|
#define BUS1394_WMI_LOCAL_HOST_SELF_ID_SIZE sizeof(ULONG[4])
|
||
|
#define BUS1394_WMI_LOCAL_HOST_SELF_ID_ID 2
|
||
|
|
||
|
// Bus Topology Map.
|
||
|
ULONG TopologyMap[256];
|
||
|
#define BUS1394_WMI_TOPOLOGY_MAP_SIZE sizeof(ULONG[256])
|
||
|
#define BUS1394_WMI_TOPOLOGY_MAP_ID 3
|
||
|
|
||
|
// Bus Tree Topology Map.
|
||
|
ULONG TreeTopologyMap[64];
|
||
|
#define BUS1394_WMI_TREE_TOPOLOGY_MAP_SIZE sizeof(ULONG[64])
|
||
|
#define BUS1394_WMI_TREE_TOPOLOGY_MAP_ID 4
|
||
|
|
||
|
// Reserved for future use
|
||
|
BOOLEAN Reserved1;
|
||
|
#define BUS1394_WMI_BUS_DATA_Reserved1_SIZE sizeof(BOOLEAN)
|
||
|
#define BUS1394_WMI_BUS_DATA_Reserved1_ID 5
|
||
|
|
||
|
} BUS1394_WMI_BUS_DATA, *PBUS1394_WMI_BUS_DATA;
|
||
|
|
||
|
// MS1394_BusErrorInformation - BUS1394_WMI_ERROR_DATA
|
||
|
// IEEE1394 Bus Error Information
|
||
|
#define GUID_BUS1394_WMI_ERROR_DATA \
|
||
|
{ 0x2c9d0f26,0x5e24,0x4369, { 0xba,0x8e,0x32,0x98,0xb5,0x5f,0x3d,0x71 } }
|
||
|
|
||
|
DEFINE_GUID(MS1394_BusErrorInformationGuid, \
|
||
|
0x2c9d0f26,0x5e24,0x4369,0xba,0x8e,0x32,0x98,0xb5,0x5f,0x3d,0x71);
|
||
|
|
||
|
|
||
|
typedef struct _BUS1394_WMI_ERROR_DATA
|
||
|
{
|
||
|
// Bus Generation.
|
||
|
ULONG Generation;
|
||
|
#define BUS1394_WMI_ERROR_DATA_GENERATION_COUNT_SIZE sizeof(ULONG)
|
||
|
#define BUS1394_WMI_ERROR_DATA_GENERATION_COUNT_ID 1
|
||
|
|
||
|
// Number of Devices we didnt have enough power budget to power.
|
||
|
ULONG NumberOfUnpoweredDevices;
|
||
|
#define BUS1394_WMI_NUMBER_OF_UNPOWERED_DEVICES_SIZE sizeof(ULONG)
|
||
|
#define BUS1394_WMI_NUMBER_OF_UNPOWERED_DEVICES_ID 2
|
||
|
|
||
|
// SelfIds of Devices we didnt have enough power budget to power.
|
||
|
ULONG UnpoweredDevices[63];
|
||
|
#define BUS1394_WMI_SELF_ID_PACKETS_OF_UNPOWERED_DEVICES_SIZE sizeof(ULONG[63])
|
||
|
#define BUS1394_WMI_SELF_ID_PACKETS_OF_UNPOWERED_DEVICES_ID 3
|
||
|
|
||
|
// Number of Devices we couldnt enumerate.
|
||
|
ULONG NumberOfNonEnumeratedDevices;
|
||
|
#define BUS1394_WMI_NUMBER_OF_NONENUMERATED_DEVICES_SIZE sizeof(ULONG)
|
||
|
#define BUS1394_WMI_NUMBER_OF_NONENUMERATED_DEVICES_ID 4
|
||
|
|
||
|
// SelfIds of Devices we couldnt enumerate
|
||
|
ULONG NonEnumeratedDevices[63];
|
||
|
#define BUS1394_WMI_SELF_ID_PACKETS_OF_NON_ENUMERATED_DEVICES_SIZE sizeof(ULONG[63])
|
||
|
#define BUS1394_WMI_SELF_ID_PACKETS_OF_NON_ENUMERATED_DEVICES_ID 5
|
||
|
|
||
|
// Reserved for future use
|
||
|
BOOLEAN Reserved1;
|
||
|
#define BUS1394_WMI_ERROR_DATA_Reserved1_SIZE sizeof(BOOLEAN)
|
||
|
#define BUS1394_WMI_ERROR_DATA_Reserved1_ID 6
|
||
|
|
||
|
} BUS1394_WMI_ERROR_DATA, *PBUS1394_WMI_ERROR_DATA;
|
||
|
|
||
|
// MS1394_BusDeviceEnumerationControl - BUS1394_WMI_DEVICE_ENUMERATION_CONTROL_DATA
|
||
|
// IEEE1394 Bus Device Enumeration Control
|
||
|
#define GUID_BUS1394_WMI_ENUMERATION_CONTROL \
|
||
|
{ 0xfb7f2114,0xd577,0x45b6, { 0x9c,0x71,0xbb,0x12,0x37,0xce,0x00,0xbc } }
|
||
|
|
||
|
DEFINE_GUID(MS1394_BusDeviceEnumerationControlGuid, \
|
||
|
0xfb7f2114,0xd577,0x45b6,0x9c,0x71,0xbb,0x12,0x37,0xce,0x00,0xbc);
|
||
|
|
||
|
|
||
|
typedef struct _BUS1394_WMI_DEVICE_ENUMERATION_CONTROL_DATA
|
||
|
{
|
||
|
|
||
|
// Disable All Enumeration
|
||
|
#define BUS1394_WMI_ENUM_CONTROL_FLAG_DISABLE_ALL_ENUMERATION 0x1
|
||
|
// Enable All Enumeration
|
||
|
#define BUS1394_WMI_ENUM_CONTROL_FLAG_ENABLE_ALL_ENUMERATION 0x2
|
||
|
|
||
|
// Enumeration Control Flags
|
||
|
ULONG Flags;
|
||
|
#define BUS1394_WMI_ENUM_CONTROL_FLAGS_SIZE sizeof(ULONG)
|
||
|
#define BUS1394_WMI_ENUM_CONTROL_FLAGS_ID 1
|
||
|
|
||
|
// Number Of Elements
|
||
|
ULONG NumberOfElements;
|
||
|
#define BUS1394_WMI_DEVICE_ENUMERATION_CONTROL_DATA_NumberOfElements_SIZE sizeof(ULONG)
|
||
|
#define BUS1394_WMI_DEVICE_ENUMERATION_CONTROL_DATA_NumberOfElements_ID 2
|
||
|
|
||
|
|
||
|
// Unit Spec Keys
|
||
|
#define BUS1394_WMI_ENUM_CONTROL_TYPE_UNIT_KEYS 0
|
||
|
// EUI 64
|
||
|
#define BUS1394_WMI_ENUM_CONTROL_TYPE_EUI_64 1
|
||
|
// Physical Port Number
|
||
|
#define BUS1394_WMI_ENUM_CONTROL_TYPE_PHYSICAL_PORT_NUMBER 2
|
||
|
|
||
|
// Element Type.
|
||
|
ULONG ExclusionElementType[63];
|
||
|
#define BUS1394_WMI_ENUM_CONTROL_EXCLUSION_ELEMENT_TYPE_SIZE sizeof(ULONG[63])
|
||
|
#define BUS1394_WMI_ENUM_CONTROL_EXCLUSION_ELEMENT_TYPE_ID 3
|
||
|
|
||
|
// Exclusion Element Flags
|
||
|
ULONG ExclusionElementFlags[63];
|
||
|
#define BUS1394_WMI_DEVICE_ENUMERATION_CONTROL_DATA_ExclusionElementFlags_SIZE sizeof(ULONG[63])
|
||
|
#define BUS1394_WMI_DEVICE_ENUMERATION_CONTROL_DATA_ExclusionElementFlags_ID 4
|
||
|
|
||
|
// Exclusion Element List
|
||
|
ULONGLONG ExclusionElementList[63];
|
||
|
#define BUS1394_WMI_DEVICE_ENUMERATION_CONTROL_DATA_ExclusionElementList_SIZE sizeof(ULONGLONG[63])
|
||
|
#define BUS1394_WMI_DEVICE_ENUMERATION_CONTROL_DATA_ExclusionElementList_ID 5
|
||
|
|
||
|
// Reserved for future use
|
||
|
BOOLEAN Reserved1;
|
||
|
#define BUS1394_WMI_DEVICE_ENUMERATION_CONTROL_DATA_Reserved1_SIZE sizeof(BOOLEAN)
|
||
|
#define BUS1394_WMI_DEVICE_ENUMERATION_CONTROL_DATA_Reserved1_ID 6
|
||
|
|
||
|
} BUS1394_WMI_DEVICE_ENUMERATION_CONTROL_DATA, *PBUS1394_WMI_DEVICE_ENUMERATION_CONTROL_DATA;
|
||
|
|
||
|
// MS1394_BusEventNotification - BUS1394_WMI_EVENT_NOTIFICATION
|
||
|
// IEEE1394 Bus Event Notification
|
||
|
#define GUID_BUS1394_WMI_EVENT_NOTIFICATION \
|
||
|
{ 0x247e7c4a,0x8dc0,0x441f, { 0x8e,0x04,0x0f,0x1a,0x07,0xb7,0x3e,0x5e } }
|
||
|
|
||
|
DEFINE_GUID(MS1394_BusEventNotificationGuid, \
|
||
|
0x247e7c4a,0x8dc0,0x441f,0x8e,0x04,0x0f,0x1a,0x07,0xb7,0x3e,0x5e);
|
||
|
|
||
|
|
||
|
typedef struct _BUS1394_WMI_EVENT_NOTIFICATION
|
||
|
{
|
||
|
// Bus Generation.
|
||
|
ULONG BusGeneration;
|
||
|
#define DEVICE1394_WMI_NOTIFICATION_BUS_GENERATION_SIZE sizeof(ULONG)
|
||
|
#define DEVICE1394_WMI_NOTIFICATION_BUS_GENERATION_ID 1
|
||
|
|
||
|
|
||
|
// Bus Reset Event
|
||
|
#define BUS1394_EVENT_NOTIFICATION_TYPE_BUS_RESET 0
|
||
|
// Bus Reset Storm Error Event
|
||
|
#define BUS1394_EVENT_NOTIFICATION_TYPE_BUS_RESET_STORM 1
|
||
|
|
||
|
// Notification Type.
|
||
|
ULONG Type;
|
||
|
#define BUS1394_WMI_NOTIFICATION_TYPE_SIZE sizeof(ULONG)
|
||
|
#define BUS1394_WMI_NOTIFICATION_TYPE_ID 2
|
||
|
|
||
|
} BUS1394_WMI_EVENT_NOTIFICATION, *PBUS1394_WMI_EVENT_NOTIFICATION;
|
||
|
|
||
|
// MS1394_PortDriverInformation - PORT1394_WMI_STD_DATA
|
||
|
// IEEE1394 Standard Host Controller Driver Information
|
||
|
#define GUID_PORT1394_WMI_STD_DATA \
|
||
|
{ 0xfae13270,0xf0e0,0x47c2, { 0xb1,0xf1,0x0a,0xc2,0xe4,0xb9,0x0d,0xfe } }
|
||
|
|
||
|
DEFINE_GUID(MS1394_PortDriverInformationGuid, \
|
||
|
0xfae13270,0xf0e0,0x47c2,0xb1,0xf1,0x0a,0xc2,0xe4,0xb9,0x0d,0xfe);
|
||
|
|
||
|
|
||
|
typedef struct _PORT1394_WMI_STD_DATA
|
||
|
{
|
||
|
// Link Speed.
|
||
|
ULONG LinkSpeed;
|
||
|
#define PORT1394_WMI_LINK_SPEED_SIZE sizeof(ULONG)
|
||
|
#define PORT1394_WMI_LINK_SPEED_ID 1
|
||
|
|
||
|
// Phy Speed.
|
||
|
ULONG PhySpeed;
|
||
|
#define PORT1394_WMI_PHY_SPEED_SIZE sizeof(ULONG)
|
||
|
#define PORT1394_WMI_PHY_SPEED_ID 2
|
||
|
|
||
|
// Number of phy ports present
|
||
|
ULONG NumberOfPhysicalPorts;
|
||
|
#define PORT1394_WMI_NUMBER_OF_PORTS_SIZE sizeof(ULONG)
|
||
|
#define PORT1394_WMI_NUMBER_OF_PORTS_ID 3
|
||
|
|
||
|
// Maximum Write Asynchronous packet size.
|
||
|
ULONG MaxAsyncWritePacket;
|
||
|
#define PORT1394_WMI_MAX_ASYNC_WRITE_PACKET_SIZE sizeof(ULONG)
|
||
|
#define PORT1394_WMI_MAX_ASYNC_WRITE_PACKET_ID 4
|
||
|
|
||
|
// Maximum Read Asynchronous packet size.
|
||
|
ULONG MaxAsyncReadPacket;
|
||
|
#define PORT1394_WMI_MAX_ASYNC_READ_PACKET_SIZE sizeof(ULONG)
|
||
|
#define PORT1394_WMI_MAX_ASYNC_READ_PACKET_ID 5
|
||
|
|
||
|
// Number of Isochronous Transmit DMA engines.
|
||
|
ULONG NumberOfIsochTxDmaContexts;
|
||
|
#define PORT1394_WMI_NUMBER_OF_ISOCH_TX_DMA_CONTEXTS_SIZE sizeof(ULONG)
|
||
|
#define PORT1394_WMI_NUMBER_OF_ISOCH_TX_DMA_CONTEXTS_ID 6
|
||
|
|
||
|
// Number of Isochronous Receive DMA engines.
|
||
|
ULONG NumberOfIsochRxDmaContexts;
|
||
|
#define PORT1394_WMI_NUMBER_OF_ISOCH_RX_DMA_CONTEXTS_SIZE sizeof(ULONG)
|
||
|
#define PORT1394_WMI_NUMBER_OF_ISOCH_RX_DMA_CONTEXTS_ID 7
|
||
|
|
||
|
// Number of Outstanding Response Transmit packets we can handle.
|
||
|
ULONG NumberOfResponseWorkers;
|
||
|
#define PORT1394_WMI_NUMBER_OF_RESPONSE_WORKERS_SIZE sizeof(ULONG)
|
||
|
#define PORT1394_WMI_NUMBER_OF_RESPONSE_WORKERS_ID 8
|
||
|
|
||
|
// Maximum Number of Outstanding Transmit requests.
|
||
|
ULONG NumberOfTransmitWorkers;
|
||
|
#define PORT1394_WMI_NUMBER_OF_TRANSMIT_WORKERS_SIZE sizeof(ULONG)
|
||
|
#define PORT1394_WMI_NUMBER_OF_TRANSMIT_WORKERS_ID 9
|
||
|
|
||
|
// General receive request buffer size.
|
||
|
ULONG GeneralAsyncReceiveRequestBufferSize;
|
||
|
#define PORT1394_WMI_RECEIVE_BUFFER_SIZE_SIZE sizeof(ULONG)
|
||
|
#define PORT1394_WMI_RECEIVE_BUFFER_SIZE_ID 10
|
||
|
|
||
|
// General receive response buffer size.
|
||
|
ULONG GeneralAsyncReceiveResponseBufferSize;
|
||
|
#define PORT1394_WMI_RESPONSE_BUFFER_SIZE_SIZE sizeof(ULONG)
|
||
|
#define PORT1394_WMI_RESPONSE_BUFFER_SIZE_ID 11
|
||
|
|
||
|
// Number of deciWatts supplied to the bus.
|
||
|
ULONG DeciWattsSupplied;
|
||
|
#define PORT1394_WMI_POWER_DECIWATTS_SUPPLIED_SIZE sizeof(ULONG)
|
||
|
#define PORT1394_WMI_POWER_DECIWATTS_SUPPLIED_ID 12
|
||
|
|
||
|
// Number of deciVolts supplied to the bus.
|
||
|
ULONG DeciVoltsSupplied;
|
||
|
#define PORT1394_WMI_POWER_DECIVOLTS_SUPPLIED_SIZE sizeof(ULONG)
|
||
|
#define PORT1394_WMI_POWER_DECIVOLTS_SUPPLIED_ID 13
|
||
|
|
||
|
|
||
|
// Supports Packet ISOCH
|
||
|
#define SUPPORTS_PACKET_ISOCH 0x1
|
||
|
// Supports Stream ISOCH
|
||
|
#define SUPPORTS_STREAM_ISOCH 0x2
|
||
|
// Supports Iso Header Insertion
|
||
|
#define SUPPORTS_ISO_HEADER_INSERTION 0x4
|
||
|
// Supports Fixed Packet Iso Stripping
|
||
|
#define SUPPORTS_FIXED_PACKET_ISO_STRIPPING 0x8
|
||
|
// Supports Variable Packet Iso Stripping
|
||
|
#define SUPPORTS_VARIABLE_PACKET_ISO_STRIPPING 0x10
|
||
|
// Supports Bus Csr In Hardware
|
||
|
#define SUPPORTS_BUS_CSR_IN_HARDWARE 0x20
|
||
|
|
||
|
// Features this host controller supports.
|
||
|
ULONG Capabilities;
|
||
|
#define PORT1394_WMI_CONTROLLER_CAPABILITIES_SIZE sizeof(ULONG)
|
||
|
#define PORT1394_WMI_CONTROLLER_CAPABILITIES_ID 14
|
||
|
|
||
|
// Globally unique 64 bit identifier for this host controller.
|
||
|
ULONGLONG ControllerEUI;
|
||
|
#define PORT1394_WMI_EUI_64_SIZE sizeof(ULONGLONG)
|
||
|
#define PORT1394_WMI_EUI_64_ID 15
|
||
|
|
||
|
// Reserved for future use
|
||
|
BOOLEAN Reserved1;
|
||
|
#define PORT1394_WMI_STD_DATA_Reserved1_SIZE sizeof(BOOLEAN)
|
||
|
#define PORT1394_WMI_STD_DATA_Reserved1_ID 16
|
||
|
|
||
|
} PORT1394_WMI_STD_DATA, *PPORT1394_WMI_STD_DATA;
|
||
|
|
||
|
// MS1394_PortErrorInformation - PORT1394_WMI_ERROR_DATA
|
||
|
// IEEE1394 Host Controller Error Information
|
||
|
#define GUID_PORT1394_WMI_ERROR_DATA \
|
||
|
{ 0x09ee6a0d,0xc0e4,0x43b1, { 0x8e,0x25,0x7c,0x0f,0xe3,0xd2,0x8f,0xc0 } }
|
||
|
|
||
|
DEFINE_GUID(MS1394_PortErrorInformationGuid, \
|
||
|
0x09ee6a0d,0xc0e4,0x43b1,0x8e,0x25,0x7c,0x0f,0xe3,0xd2,0x8f,0xc0);
|
||
|
|
||
|
|
||
|
typedef struct _PORT1394_WMI_ERROR_DATA
|
||
|
{
|
||
|
|
||
|
// Bus Reset Storm
|
||
|
#define PORT1394_ERROR_BUS_RESET_STORM 0x1
|
||
|
// Physical Chip Access Error
|
||
|
#define PORT1394_ERROR_PHYSICAL_CHIP_NOT_ACCESSIBLE 0x2
|
||
|
|
||
|
// Controller Error Flags
|
||
|
ULONG ErrorFlags;
|
||
|
#define PORT1394_ERROR_FLAGS_SIZE sizeof(ULONG)
|
||
|
#define PORT1394_ERROR_FLAGS_ID 1
|
||
|
|
||
|
// Reserved for future use
|
||
|
BOOLEAN Reserved1;
|
||
|
#define PORT1394_WMI_ERROR_DATA_Reserved1_SIZE sizeof(BOOLEAN)
|
||
|
#define PORT1394_WMI_ERROR_DATA_Reserved1_ID 2
|
||
|
|
||
|
} PORT1394_WMI_ERROR_DATA, *PPORT1394_WMI_ERROR_DATA;
|
||
|
|
||
|
// MS1394_PortVendorRegisterAccess - PORT1394_WMI_VENDOR_REGISTER_ACCESS
|
||
|
// IEEE1394 Host Controller Vendor Register Access
|
||
|
#define GUID_PORT1394_WMI_VENDOR_REGISTER_ACCESS \
|
||
|
{ 0x0211cbd9,0x6a7a,0x4464, { 0x88,0xf6,0x1c,0xf8,0x14,0x63,0xb1,0xfc } }
|
||
|
|
||
|
DEFINE_GUID(MS1394_PortVendorRegisterAccessGuid, \
|
||
|
0x0211cbd9,0x6a7a,0x4464,0x88,0xf6,0x1c,0xf8,0x14,0x63,0xb1,0xfc);
|
||
|
|
||
|
|
||
|
typedef struct _PORT1394_WMI_VENDOR_REGISTER_ACCESS
|
||
|
{
|
||
|
// Register to operate on.
|
||
|
ULONG NumberOfRegisters;
|
||
|
#define PORT1394_WMI_NUMBER_OF_VENDOR_REGISTERS_SIZE sizeof(ULONG)
|
||
|
#define PORT1394_WMI_NUMBER_OF_VENDOR_REGISTERS_ID 1
|
||
|
|
||
|
// Register sizes.
|
||
|
ULONG RegisterSize[10];
|
||
|
#define PORT1394_WMI_VENDOR_REGISTER_SIZE_SIZE sizeof(ULONG[10])
|
||
|
#define PORT1394_WMI_VENDOR_REGISTER_SIZE_ID 2
|
||
|
|
||
|
|
||
|
// Register Read
|
||
|
#define PORT1394_WMI_READ_VENDOR_REGISTER 0
|
||
|
// Register Write
|
||
|
#define PORT1394_WMI_WRITE_VENDOR_REGISTER 1
|
||
|
|
||
|
// Register operation.
|
||
|
ULONG RegisterOperation[10];
|
||
|
#define PORT1394_WMI_VENDOR_REGISTER_OPERATION_SIZE sizeof(ULONG[10])
|
||
|
#define PORT1394_WMI_VENDOR_REGISTER_OPERATION_ID 3
|
||
|
|
||
|
// Register base offset.
|
||
|
ULONG RegisterBase[10];
|
||
|
#define PORT1394_WMI_VENDOR_REGISTER_BASE_SIZE sizeof(ULONG[10])
|
||
|
#define PORT1394_WMI_VENDOR_REGISTER_BASE_ID 4
|
||
|
|
||
|
// Register data.
|
||
|
ULONGLONG RegisterData[10];
|
||
|
#define PORT1394_WMI_VENDOR_REGISTER_DATA_SIZE sizeof(ULONGLONG[10])
|
||
|
#define PORT1394_WMI_VENDOR_REGISTER_DATA_ID 5
|
||
|
|
||
|
// Reserved for future use
|
||
|
BOOLEAN Reserved1;
|
||
|
#define PORT1394_WMI_VENDOR_REGISTER_ACCESS_Reserved1_SIZE sizeof(BOOLEAN)
|
||
|
#define PORT1394_WMI_VENDOR_REGISTER_ACCESS_Reserved1_ID 6
|
||
|
|
||
|
} PORT1394_WMI_VENDOR_REGISTER_ACCESS, *PPORT1394_WMI_VENDOR_REGISTER_ACCESS;
|
||
|
|
||
|
// MS1394_PortVendorRegisterAccessMethods - MS1394_PortVendorRegisterAccessMethods
|
||
|
// IEEE1394 Host Controller Vendor Register Access
|
||
|
#define MS1394_PortVendorRegisterAccessMethodsGuid \
|
||
|
{ 0x0211cbd9,0x6a7a,0x4464, { 0x88,0xf6,0x1c,0xf8,0x14,0x63,0xb1,0xfc } }
|
||
|
|
||
|
DEFINE_GUID(MS1394_PortVendorRegisterAccessMethods_GUID, \
|
||
|
0x0211cbd9,0x6a7a,0x4464,0x88,0xf6,0x1c,0xf8,0x14,0x63,0xb1,0xfc);
|
||
|
|
||
|
//
|
||
|
// Method id definitions for MS1394_PortVendorRegisterAccessMethods
|
||
|
#define AccessVendorSpace 1
|
||
|
typedef struct _AccessVendorSpace_IN
|
||
|
{
|
||
|
//
|
||
|
PORT1394_WMI_VENDOR_REGISTER_ACCESS RegisterData;
|
||
|
#define AccessVendorSpace_IN_RegisterData_SIZE sizeof(PORT1394_WMI_VENDOR_REGISTER_ACCESS)
|
||
|
#define AccessVendorSpace_IN_RegisterData_ID 1
|
||
|
|
||
|
} AccessVendorSpace_IN, *PAccessVendorSpace_IN;
|
||
|
|
||
|
typedef struct _AccessVendorSpace_OUT
|
||
|
{
|
||
|
//
|
||
|
PORT1394_WMI_VENDOR_REGISTER_ACCESS RegisterData;
|
||
|
#define AccessVendorSpace_OUT_RegisterData_SIZE sizeof(PORT1394_WMI_VENDOR_REGISTER_ACCESS)
|
||
|
#define AccessVendorSpace_OUT_RegisterData_ID 1
|
||
|
|
||
|
} AccessVendorSpace_OUT, *PAccessVendorSpace_OUT;
|
||
|
|
||
|
|
||
|
// MS1394_DeviceInformation - DEVICE1394_WMI_STD_DATA
|
||
|
// IEEE1394 Standard Device Information
|
||
|
#define GUID_DEVICE1394_WMI_STD_DATA \
|
||
|
{ 0xc9299396,0x3553,0x4d48, { 0xab,0x3a,0x8b,0xfc,0x83,0x30,0x67,0xfc } }
|
||
|
|
||
|
DEFINE_GUID(MS1394_DeviceInformationGuid, \
|
||
|
0xc9299396,0x3553,0x4d48,0xab,0x3a,0x8b,0xfc,0x83,0x30,0x67,0xfc);
|
||
|
|
||
|
|
||
|
typedef struct _DEVICE1394_WMI_STD_DATA
|
||
|
{
|
||
|
// Current Generation.
|
||
|
ULONG Generation;
|
||
|
#define DEVICE1394_WMI_CURRENT_GENERATION_SIZE sizeof(ULONG)
|
||
|
#define DEVICE1394_WMI_CURRENT_GENERATION_ID 1
|
||
|
|
||
|
|
||
|
// Physical Device
|
||
|
#define DEVICE_TYPE_PHYSICAL 0
|
||
|
// Virtual Device
|
||
|
#define DEVICE_TYPE_VIRTUAL 1
|
||
|
|
||
|
// Device Type
|
||
|
ULONG DeviceType;
|
||
|
#define DEVICE1394_WMI_TYPE_SIZE sizeof(ULONG)
|
||
|
#define DEVICE1394_WMI_TYPE_ID 2
|
||
|
|
||
|
// Phy Speed.
|
||
|
ULONG PhySpeed;
|
||
|
#define DEVICE1394_WMI_PHY_SPEED_SIZE sizeof(ULONG)
|
||
|
#define DEVICE1394_WMI_PHY_SPEED_ID 3
|
||
|
|
||
|
// Node Address.
|
||
|
USHORT NodeAddress;
|
||
|
#define DEVICE1394_WMI_NODE_ADDRESS_SIZE sizeof(USHORT)
|
||
|
#define DEVICE1394_WMI_NODE_ADDRESS_ID 4
|
||
|
|
||
|
|
||
|
// Power Class Not Need Not Repeat
|
||
|
#define POWER_CLASS_NOT_NEED_NOT_REPEAT 0
|
||
|
// Power Class Self Power Provide 15W
|
||
|
#define POWER_CLASS_SELF_POWER_PROVIDE_15W 1
|
||
|
// Power Class Self Power Provide 30W
|
||
|
#define POWER_CLASS_SELF_POWER_PROVIDE_30W 2
|
||
|
// Power Class Self Power Provide 45W
|
||
|
#define POWER_CLASS_SELF_POWER_PROVIDE_45W 3
|
||
|
// Power Class Maybe Powered Upto 1W
|
||
|
#define POWER_CLASS_MAYBE_POWERED_UPTO_1W 4
|
||
|
// Power Class Is Powered Upto 1W Needs 2W
|
||
|
#define POWER_CLASS_IS_POWERED_UPTO_1W_NEEDS_2W 5
|
||
|
// Power Class Is Powered Upto 1W Needs 5W
|
||
|
#define POWER_CLASS_IS_POWERED_UPTO_1W_NEEDS_5W 6
|
||
|
// Power Class Is Powered Upto 1W Needs_9W
|
||
|
#define POWER_CLASS_IS_POWERED_UPTO_1W_NEEDS_9W 7
|
||
|
|
||
|
// Device Power Class
|
||
|
ULONG PowerClass;
|
||
|
#define DEVICE1394_WMI_POWERCLASS_SIZE sizeof(ULONG)
|
||
|
#define DEVICE1394_WMI_POWERCLASS_ID 5
|
||
|
|
||
|
// Physical two way delay to the device, in micro seconds.
|
||
|
ULONG PhyDelay;
|
||
|
#define DEVICE1394_WMI_PHYSICAL_DELAY_SIZE sizeof(ULONG)
|
||
|
#define DEVICE1394_WMI_PHYSICAL_DELAY_ID 6
|
||
|
|
||
|
// Self Id Packet for this Device.
|
||
|
ULONG SelfId[4];
|
||
|
#define DEVICE1394_WMI_SELF_ID_PACKET_SIZE sizeof(ULONG[4])
|
||
|
#define DEVICE1394_WMI_SELF_ID_PACKET_ID 7
|
||
|
|
||
|
// Globally unique 64 bit identifier for this Device.
|
||
|
ULONGLONG DeviceEUI;
|
||
|
#define DEVICE1394_WMI_EUI_64_SIZE sizeof(ULONGLONG)
|
||
|
#define DEVICE1394_WMI_EUI_64_ID 8
|
||
|
|
||
|
// Configuration Rom BusInfoBlock and Root Directory
|
||
|
ULONG ConfigRomHeader[32];
|
||
|
#define DEVICE1394_WMI_CONFIG_ROM_SIZE sizeof(ULONG[32])
|
||
|
#define DEVICE1394_WMI_CONFIG_ROM_ID 9
|
||
|
|
||
|
// Unit Directory
|
||
|
ULONG UnitDirectory[32];
|
||
|
#define DEVICE1394_WMI_UNIT_DIRECTORY_SIZE sizeof(ULONG[32])
|
||
|
#define DEVICE1394_WMI_UNIT_DIRECTORY_ID 10
|
||
|
|
||
|
// Reserved for future use
|
||
|
BOOLEAN Reserved1;
|
||
|
#define DEVICE1394_WMI_STD_DATA_Reserved1_SIZE sizeof(BOOLEAN)
|
||
|
#define DEVICE1394_WMI_STD_DATA_Reserved1_ID 11
|
||
|
|
||
|
} DEVICE1394_WMI_STD_DATA, *PDEVICE1394_WMI_STD_DATA;
|
||
|
|
||
|
// MS1394_DeviceAccessInformation - DEVICE1394_WMI_ACCESS_DATA
|
||
|
// IEEE1394 Device Access Properties
|
||
|
#define GUID_DEVICE1394_WMI_ACCESS_DATA \
|
||
|
{ 0xa6fd3242,0x960c,0x4d9e, { 0x93,0x79,0x43,0xa8,0xb3,0x58,0x22,0x4a } }
|
||
|
|
||
|
DEFINE_GUID(MS1394_DeviceAccessInformationGuid, \
|
||
|
0xa6fd3242,0x960c,0x4d9e,0x93,0x79,0x43,0xa8,0xb3,0x58,0x22,0x4a);
|
||
|
|
||
|
|
||
|
typedef struct _DEVICE1394_WMI_ACCESS_DATA
|
||
|
{
|
||
|
// API Version.
|
||
|
ULONG Version;
|
||
|
#define DEVICE1394_WMI_ACCESS_VERSION_SIZE sizeof(ULONG)
|
||
|
#define DEVICE1394_WMI_ACCESS_VERSION_ID 1
|
||
|
|
||
|
|
||
|
// Ownership Local Node
|
||
|
#define DEVICE1394_OWNERSHIP_LOCAL 0x1
|
||
|
// Ownership Remote Node
|
||
|
#define DEVICE1394_OWNERSHIP_REMOTE 0x2
|
||
|
// Access shared for read
|
||
|
#define DEVICE1394_ACCESS_SHARED_READ 0x4
|
||
|
// Access shared for write
|
||
|
#define DEVICE1394_ACCESS_SHARED_WRITE 0x8
|
||
|
// Access exclusive
|
||
|
#define DEVICE1394_ACCESS_EXCLUSIVE 0x10
|
||
|
|
||
|
// Ownership and Access Flags
|
||
|
ULONG OwnershipAccessFlags;
|
||
|
#define DEVICE1394_WMI_ACCESS_FLAGS_SIZE sizeof(ULONG)
|
||
|
#define DEVICE1394_WMI_ACCESS_FLAGS_ID 2
|
||
|
|
||
|
|
||
|
// Notify on access change
|
||
|
#define DEVICE1394_NOTIFY_ON_ACCESS_CHANGE 0x1
|
||
|
|
||
|
// Notification Flags
|
||
|
ULONG NotificationFlags;
|
||
|
#define DEVICE1394_WMI_ACCESS_NOTIFICATION_FLAGS_SIZE sizeof(ULONG)
|
||
|
#define DEVICE1394_WMI_ACCESS_NOTIFICATION_FLAGS_ID 3
|
||
|
|
||
|
// EUI-64 of remote device
|
||
|
ULONGLONG RemoteOwnerEUI;
|
||
|
#define DEVICE1394_WMI_ACCESS_REMOTE_OWNER_EUI64_SIZE sizeof(ULONGLONG)
|
||
|
#define DEVICE1394_WMI_ACCESS_REMOTE_OWNER_EUI64_ID 4
|
||
|
|
||
|
// Reserved for future use
|
||
|
BOOLEAN Reserved1;
|
||
|
#define DEVICE1394_WMI_ACCESS_DATA_Reserved1_SIZE sizeof(BOOLEAN)
|
||
|
#define DEVICE1394_WMI_ACCESS_DATA_Reserved1_ID 5
|
||
|
|
||
|
} DEVICE1394_WMI_ACCESS_DATA, *PDEVICE1394_WMI_ACCESS_DATA;
|
||
|
|
||
|
// MS1394_DeviceAccessNotification - DEVICE1394_WMI_ACCESS_NOTIFICATION
|
||
|
// IEEE1394 Device Access Notification
|
||
|
#define GUID_DEVICE1394_WMI_ACCESS_NOTIFY \
|
||
|
{ 0x321c7c45,0x8676,0x44a8, { 0x91,0x09,0x89,0xce,0x35,0x8e,0xe8,0x3f } }
|
||
|
|
||
|
DEFINE_GUID(MS1394_DeviceAccessNotificationGuid, \
|
||
|
0x321c7c45,0x8676,0x44a8,0x91,0x09,0x89,0xce,0x35,0x8e,0xe8,0x3f);
|
||
|
|
||
|
|
||
|
typedef struct _DEVICE1394_WMI_ACCESS_NOTIFICATION
|
||
|
{
|
||
|
// API Version.
|
||
|
ULONG Version;
|
||
|
#define DEVICE1394_WMI_ACCESS_NOTIFY_VERSION_SIZE sizeof(ULONG)
|
||
|
#define DEVICE1394_WMI_ACCESS_NOTIFY_VERSION_ID 1
|
||
|
|
||
|
// Bus Generation.
|
||
|
ULONG BusGeneration;
|
||
|
#define DEVICE1394_WMI_ACCESS_NOTIFY_GENERATION_SIZE sizeof(ULONG)
|
||
|
#define DEVICE1394_WMI_ACCESS_NOTIFY_GENERATION_ID 2
|
||
|
|
||
|
|
||
|
// Remote Node Access Request
|
||
|
#define DEVICE1394_ACCESS_NOTIFICATION_TYPE_REMOTE 0
|
||
|
// Local Node Access Change
|
||
|
#define DEVICE1394_ACCESS_NOTIFICATION_TYPE_LOCAL 1
|
||
|
|
||
|
// Notification Type.
|
||
|
ULONG Type;
|
||
|
#define DEVICE1394_WMI_ACCESS_NOTIFY_TYPE_SIZE sizeof(ULONG)
|
||
|
#define DEVICE1394_WMI_ACCESS_NOTIFY_TYPE_ID 3
|
||
|
|
||
|
// Current Ownership Flags
|
||
|
ULONGLONG OwnerShipAccessFlags;
|
||
|
#define DEVICE1394_WMI_ACCESS_NOTIFY_FLAGS_SIZE sizeof(ULONGLONG)
|
||
|
#define DEVICE1394_WMI_ACCESS_NOTIFY_FLAGS_ID 4
|
||
|
|
||
|
// EUI-64 of remote device
|
||
|
ULONGLONG RemoteOwnerEUI;
|
||
|
#define DEVICE1394_WMI_ACCESS_NOTIFY_REMOTE_OWNER_EUI64_SIZE sizeof(ULONGLONG)
|
||
|
#define DEVICE1394_WMI_ACCESS_NOTIFY_REMOTE_OWNER_EUI64_ID 5
|
||
|
|
||
|
// Reserved for future use
|
||
|
BOOLEAN Reserved1;
|
||
|
#define DEVICE1394_WMI_ACCESS_NOTIFICATION_Reserved1_SIZE sizeof(BOOLEAN)
|
||
|
#define DEVICE1394_WMI_ACCESS_NOTIFICATION_Reserved1_ID 6
|
||
|
|
||
|
} DEVICE1394_WMI_ACCESS_NOTIFICATION, *PDEVICE1394_WMI_ACCESS_NOTIFICATION;
|
||
|
|
||
|
#endif
|