// 1394.h
typedef struct _SELF_ID {
ULONG SID_Phys_ID : 6;
ULONG SID_Packet_ID : 2;
ULONG SID_Gap_Count : 6;
ULONG SID_Link_Active : 1;
ULONG SID_Zero : 1;
ULONG SID_Power_Class : 3;
ULONG SID_Contender : 1;
ULONG SID_Delay : 2;
ULONG SID_Speed : 2;
ULONG SID_More_Packets : 1;
ULONG SID_Initiated_Rst : 1;
ULONG SID_Port3 : 2;
ULONG SID_Port2 : 2;
ULONG SID_Port1 : 2;
} SELF_ID, *PSELF_ID;
View the official Windows Driver Kit DDI referenceNo description available.
The SELF_ID structure contains a raw packet zero self-ID packet.
SID_Phys_IDSpecifies the device node number. This member contains bits 0-5 of byte 0 of the self-ID packet.
SID_Packet_IDMust be PHY_PACKET_ID_SELF_ID. This member contains bits 6-7 of byte 0 of the self-ID packet.
SID_Gap_CountSpecifies the current value of the node's PHY_CONFIGURATION register's gap_count member. This member contains bits 0-5 of byte 1 of the self-ID packet.
SID_Link_ActiveOne if the device's link and transaction layers are active, zero otherwise. This member contains bit 6 of byte 1 of the self-ID packet.
SID_ZeroAlways zero. This member contains bit 7 of byte 1 of the self-ID packet.
SID_Power_ClassThe possible power classes are:
POWER_CLASS_NOT_NEED_NOT_REPEAT
POWER_CLASS_SELF_POWER_PROVIDE_15W
POWER_CLASS_SELF_POWER_PROVIDE_30W
POWER_CLASS_SELF_POWER_PROVIDE_45W
POWER_CLASS_MAYBE_POWERED_UPTO_1W
POWER_CLASS_IS_POWERED_UPTO_1W_NEEDS_2W
POWER_CLASS_IS_POWERED_UPTO_1W_NEEDS_5W
POWER_CLASS_IS_POWERED_UPTO_1W_NEEDS_9W
This member contains bits 0-2 of byte 2 of the self-ID packet.
SID_ContenderOne if this node is a contender for bus or isochronous resource manager, zero otherwise. This member contains bit 3 of byte 2 of the self-ID packet.
SID_DelayCurrently always zero. This member contains bits 4-5 of byte 2 of the self-ID packet.
SID_SpeedSpecifies the maximum data transfer rate that is supported by the node. This member must have one of the values specified in the following table.
| Value | Speed |
|---|---|
| 0 | S100 speed |
| 1 | S200 speed |
| 2 | S400 speed |
| 3 | Reserved (generally treated as S400/S800 speed) |
SID_More_PacketsOne if this packet will be followed by SELF_ID_MORE packets, zero otherwise. This member contains bit 0 of byte 3 of the self-ID packet.
SID_Initiated_RstOne if this node initiated the most recent bus reset, zero otherwise. This member contains bit 1 of byte 3 of the self-ID packet.
SID_Port3Byte 3 - Bits 2-3
SID_Port2Byte 3 - Bits 4-5
SID_Port1Specifies port status. Possible values are:
SELF_ID_CONNECTED_TO_CHILD
SELF_ID_CONNECTED_TO_PARENT
SELF_ID_NOT_CONNECTED
SELF_ID_NOT_PRESENT
Member SID_Port1 contains bits 2-3 of byte 3 of the self-ID packet. Member SID_Port2 contains bits 4-5 of byte 3 of the self-ID packet. Member SID_Port3 contains bits 6-7 of byte 3 of the self-ID packet.
This structure corresponds to self ID packet 0, as described in the P1394a specification.