IEEE 1394 bus

Overview of the IEEE 1394 bus technology.

To develop IEEE 1394 bus, you need these headers:

For the programming guide, see IEEE 1394 bus.

IOCTLs

 
IOCTL_1394_CLASS

An IEEE 1394 driver uses the IRP_MJ_INTERNAL_DEVICE_CONTROL IRP, with IoControlCode IOCTL_1394_CLASS, to communicate with the bus driver. The driver has access to all operations provided by the IEEE 1394 bus and its host controller through this request.
IOCTL_61883_CLASS

An IEC-61883 client driver uses the IRP_MJ_INTERNAL_DEVICE_CONTROL IRP with IoControlCode IOCTL_61883_CLASS to communicate with 1394 driver stack using the IEC-61883 protocol.

Enumerations

 
CMP_CONNECT_TYPE

This enumeration specifies a connection type.
CMP_PLUG_LOCATION

This enumeration specifies the location of a plug.
CMP_PLUG_TYPE

This enumeration specifies the type of a plug.

Functions

 
PBUS_RESET_ROUTINE

This is a caller-supplied function to be called by the protocol driver when the 1394 bus is reset.
PCMP_MONITOR_ROUTINE

This routine is called for plug monitoring.
PCMP_NOTIFY_ROUTINE

This routine is called for plug notification.

Structures

 
ADDRESS_FIFO

The ADDRESS_FIFO structure is an entry in a singly-linked list of MDLs that the REQUEST_ALLOCATE_ADDRESS_RANGE IEEE 1394 bus request uses.
ADDRESS_OFFSET

The ADDRESS_OFFSET structure specifies the 48-bit address within a device's IEEE 1394 address space.
ADDRESS_RANGE

The ADDRESS_RANGE structure describes a range in a IEEE 1394 device's address space.
AV_61883_REQUEST

The AV_61883_REQUEST structure is used to pass requests to the IEC-61883 protocol driver.
AV_PCR

The AV_PCR structure specifies settings for an input or output plug.
BUS_GENERATION_NODE

The BUS_GENERATION_NODE structure is used in conjunction with the Av61883_GetUnitInfo request to retrieve bus characteristics.
BUS_RESET_DATA

The BUS_RESET_DATA structure specifies the context for the extended bus reset notification routine.
BUS_RESET_NOTIFY

This structure is used to register or deregister the PBUS_RESET_ROUTINE callback.
CIP_ATTACH_FRAME

This structure is used in an attach frame request.
CIP_CANCEL_FRAME

The request cancels an attached frame buffer. A frame can be canceled while the stream is running.
CIP_DATA_FORMAT_VER2

This structure is a CIP data format which is used by CMP_CONNECT_VER2.
CIP_DATA_FORMAT_VER3

This structure is used by CipDataFormat.
CIP_FRAME

The CIP_FRAME structure describes a frame to be attached to an input or output plug.
CIP_LISTEN

This structure is used for a listen request. The request begins isochronous reception on the specified connection.
CIP_NOTIFY_INFO

The CIP_NOTIFY_INFO structure contains information about the frame.
CIP_STOP

This structure is used to stop transmission or reception.
CIP_TALK

This structure is used to begin transmission.
CIP_VALIDATE_INFO

The CIP_VALIDATE_INFO structure contains information about the frame.
CMP_CONNECT_VER2

This structure contains information for a connection request. The request attempts to make a connection to a plug control register on the local host.
CMP_CONNECT_VER3

This structure contains information for a connection request.
CMP_CREATE_PLUG

This structure is used to create a plug.
CMP_DELETE_PLUG

This structure is used to delete a plug.Av61883_CreatePlug.
CMP_DISCONNECT

This structure is used to break a connection.
CMP_GET_PLUG_HANDLE

This structure is used in getting the handle of a plug.
CMP_GET_PLUG_STATE

This structure is used in getting the state of a plug.
CMP_MONITOR_INFO

The CMP_MONITOR_INFO structure is used in conjunction with the Av61883_MonitorPlugs request to allow a driver to monitor access to local oPCR and iPCR plugs.
CMP_MONITOR_PLUGS

This structure is used to monitor plug access. The request allows a driver to monitor all access to local oPCR and iPCR plugs.
CMP_NOTIFY_INFO

This structure is used by the PCMP_NOTIFY_ROUTINE callback.
CMP_SET_PLUG

This structure is used to assign settings to a plug.
CONFIG_ROM

The CONFIG_ROM structure is used to contain the first 24 bytes of an IEEE 1394 device's configuration ROM.
CYCLE_TIME

The CYCLE_TIME structure contains the IEEE 1394 isochronous cycle time.
FCP_FRAME

The FCP_FRAME structure describes a function control protocol (FCP) request.
FCP_GET_REQUEST

This structure is used for a get request.
FCP_REQUEST

This structure is used for a send request.
FCP_RESPONSE

The structure is used in a request yjsy retrieves the next FCP response from the queue of requests maintained by the IEC-61883 protocol driver.
FCP_SEND_RESPONSE

This structure is used for a send response.
GET_LOCAL_HOST_INFO1

The GET_LOCAL_HOST_INFO1 structure contains the data returned by a REQUEST_GET_LOCAL_HOST_INFO request using u.GetLocalHostInformation.nLevel GET_HOST_UNIQUE_ID.
GET_LOCAL_HOST_INFO2

The GET_LOCAL_HOST_INFO2 structure contains the data returned by a REQUEST_GET_LOCAL_HOST_INFO request using u.GetLocalHostInformation.nLevel GET_HOST_CAPABILITIES.
GET_LOCAL_HOST_INFO3

The GET_LOCAL_HOST_INFO3 structure contains the data returned by a REQUEST_GET_LOCAL_HOST_INFO request using u.GetLocalHostInformation.nLevel = GET_POWER_SUPPLIED.
GET_LOCAL_HOST_INFO4

The GET_LOCAL_HOST_INFO4 structure contains the data returned by a REQUEST_GET_LOCAL_HOST_INFO request using u.GetLocalHostInformation.nLevel = GET_PHYS_ADDR_ROUTINE.
GET_LOCAL_HOST_INFO5

The GET_LOCAL_HOST_INFO5 structure contains the data returned by a REQUEST_GET_LOCAL_HOST_INFO request using u.GetLocalHostInformation.nLevel = GET_HOST_CONFIG_ROM.
GET_LOCAL_HOST_INFO6

The GET_LOCAL_HOST_INFO6 structure contains the data returned by a REQUEST_GET_LOCAL_HOST_INFO request using u.GetLocalHostInformation.nLevel = GET_HOST_CSR_CONTENTS.
GET_LOCAL_HOST_INFO7_W2K

The GET_LOCAL_HOST_INFO7_W2K structure is returned by a REQUEST_GET_LOCAL_HOST_INFO request with u.GetLocalHostInformation.nLevel set to GET_HOST_DMA_CAPABILITIES.
GET_LOCAL_HOST_INFO7_WXP

The GET_LOCAL_HOST_INFO7_WXP structure is returned by a REQUEST_GET_LOCAL_HOST_INFO request with u.GetLocalHostInformation.nLevel set to GET_HOST_DMA_CAPABILITIES.
GET_LOCAL_HOST_INFO8

The GET_LOCAL_HOST_INFO8 structure contains the data returned by a REQUEST_GET_LOCAL_HOST_INFO request with u.GetLocalHostInformation.nLevel set to GET_HOST_DDI_VERSION.
GET_UNIT_CAPABILITIES

The GET_UNIT_CAPABILITIES structure is used in conjunction with the Av61883_GetUnitInfo request to retrieve unit information about a device's capabilities.
GET_UNIT_IDS

The GET_UNIT_CAPABILITIES structure is used in conjunction with the Av61883_GetUnitInfo request to retrieve device identifiers.
GET_UNIT_INFO

This structure is used to get unit information.
IO_ADDRESS

The IO_ADDRESS structure specifies the 1394 64-bit destination address for read, write and lock operations.
IPCR

The IPCR structure contains initialization values for an input plug.
IRB

Drivers use this structure to pass most requests to IEEE 1394 bus driver.
IRB_REQ_ALLOCATE_ADDRESS_RANGE

This structure contains the fields necessary for the 1394 stack to carry out a request to allocate an address range.
IRB_REQ_ASYNC_LOCK

This structure contains the fields necessary for the 1394 stack to carry out an asynchronous lock request.
IRB_REQ_ASYNC_READ

This structure contains the fields necessary for the 1394 stack to carry out an asynchronous read request.
IRB_REQ_ASYNC_STREAM

This structure contains the fields necessary for the 1394 bus driver to carry out an asynchronous write request.
IRB_REQ_ASYNC_WRITE

This structure contains the fields necessary for the 1394 stack to carry out an asynchronous write request.
IRB_REQ_BUS_RESET

This structure contains the fields necessary for the 1394 bus driver to create a bus reset request.
IRB_REQ_BUS_RESET_NOTIFICATION

This structure contains the fields necessary for the 1394 bus driver to carry out a bus reset notification request.
IRB_REQ_CONTROL

This structure contains the fields necessary for the 1394 bus driver to carry out a control request.
IRB_REQ_FREE_ADDRESS_RANGE

This structure contains the fields necessary for the 1394 stack to carry out a free address range request.
IRB_REQ_GET_1394_ADDRESS_FROM_DEVICE_OBJECT

This structure contains the fields necessary to carry out a Get1394AddressFromDeviceObject request.
IRB_REQ_GET_CONFIG_ROM

This structure contains the fields necessary for the bus driver to carry out a GetConfigRom request.
IRB_REQ_GET_CONFIGURATION_INFORMATION

This structure contains the fields necessary for the 1394 bus driver to carry out a GetConfigurationInformation request.
IRB_REQ_GET_GENERATION_COUNT

This structure contains the fields necessary for the 1394 bus driver to carry out a GetGenerationCount request.
IRB_REQ_GET_LOCAL_HOST_INFORMATION

This structure contains the fields necessary for the 1394 bus driver to carry out a GetLocalHostInformation request.
IRB_REQ_GET_MAX_SPEED_BETWEEN_DEVICES

This structure contains the fields necessary in order for the Bus driver to carry out a GetMaxSpeedBetweenDevices request.
IRB_REQ_GET_SPEED_TOPOLOGY_MAPS

This structure contains the fields necessary for the 1394 bus driver to carry out a GetSpeedTopologyMaps request.
IRB_REQ_ISOCH_ALLOCATE_BANDWIDTH

This structure contains the fields necessary in order for the Bus driver to carry out an IsochAllocateBandwidth request.
IRB_REQ_ISOCH_ALLOCATE_CHANNEL

This structure contains the fields necessary in order for the 1394 bus driver to carry out an IsochAllocateChannel request.
IRB_REQ_ISOCH_ALLOCATE_RESOURCES_W2K

The IRB_REQ_ISOCH_ALLOCATE_RESOURCES_W2K structure contains the fields necessary for the 1394 bus driver to carry out an IsochAllocateResources request.
IRB_REQ_ISOCH_ALLOCATE_RESOURCES_WXP

The IRB_REQ_ISOCH_ALLOCATE_RESOURCES_WXP structure contains the fields necessary for the 1394 bus driver to carry out an IsochAllocateResources request.
IRB_REQ_ISOCH_ATTACH_BUFFERS

This structure contains the fields required for the 1394 bus driver to carry out a IsochAttachBuffers request.
IRB_REQ_ISOCH_DETACH_BUFFERS

This structure contains the fields required to carry out a IsochDetachBuffers request.
IRB_REQ_ISOCH_FREE_BANDWIDTH

This structure contains the fields necessary in order for the Bus driver to carry out an IsochFreeBandwidth request.
IRB_REQ_ISOCH_FREE_CHANNEL

This structure contains the fields required to carry out a IsochFreeChannel request.
IRB_REQ_ISOCH_FREE_RESOURCES

This structure contains the fields necessary to carry out a IsochFreeResources request.
IRB_REQ_ISOCH_LISTEN

This structure contains the fields necessary to carry out a ReqIsochListen request.
IRB_REQ_ISOCH_MODIFY_STREAM_PROPERTIES

This structure contains the fields necessary for the Bus driver to carry out an IsochModifyStreamProperties request.
IRB_REQ_ISOCH_QUERY_CURRENT_CYCLE_TIME

This structure contains the fields necessary for the Bus driver to carry out an IsochQueryCurrentCycleTime request.
IRB_REQ_ISOCH_QUERY_RESOURCES

This structure contains the fields necessary to carry out a IsochQueryResources request.
IRB_REQ_ISOCH_SET_CHANNEL_BANDWIDTH

This structure contains the fields necessary for the Bus driver to carry out an IsochSetChannelBandwidth request.
IRB_REQ_ISOCH_STOP

This structure contains the field necessary to carry out a IsochStop request.
IRB_REQ_ISOCH_TALK

This structure contains the field necessary to carry out a IsochTalk request.
IRB_REQ_RECEIVE_PHY_PACKETS

This structure contains the fields necessary to carry out a ReceivePhyPackets request.
IRB_REQ_SEND_PHY_CONFIGURATION_PACKET

This structure contains the fields necessary to carry out a SendPhyConfigurationPacket request.
IRB_REQ_SEND_PHY_PACKET

This structure contains the fields necessary to carry out a SendPhyPacket request.
IRB_REQ_SET_DEVICE_XMIT_PROPERTIES

This structure contains the fields necessary to carry out a SetDeviceXmitProperties request.
IRB_REQ_SET_LOCAL_HOST_PROPERTIES

This structure contains the fields required to carry out a SetLocalHostProperties request.
ISOCH_DESCRIPTOR

The ISOCH_DESCRIPTOR structure describes a buffer to be attached or detailed from a resource handle, using the REQUEST_ISOCH_ATTACH_BUFFERS and REQUEST_ISOCH_DETACH_BUFFERS requests.
NODE_ADDRESS

The NODE_ADDRESS structure specifies the 10-bit bus number and 6-bit node number that serve as the node address for a 1394 node.
NOTIFICATION_INFO_W2K

The bus driver passes NOTIFICATION_INFO_W2K to the driver-provided notification routine for a driver-allocated address range in an IEEE 1394 address space.
NOTIFICATION_INFO_WXP

The bus driver passes NOTIFICATION_INFO_WXP to the driver-provided notification routine for a driver-allocated address range in an IEEE 1394 address space.
OPCR

The OPCR structure contains initialization values for an output plug.
PHY_CONFIGURATION_PACKET

The PHY_CONFIGURATION_PACKET structure contains a raw PHY configuration packet.
SELF_ID

The SELF_ID structure contains a raw packet zero self-ID packet. See the IEEE 1394 Trade Association specification website for details.
SELF_ID_MORE

The SELF_ID_MORE structure contains a raw packet one, two, or three self-ID packet. See the IEEE 1394 specification for details.
SET_CMP_ADDRESS_TYPE

The SET_CMP_ADDRESS_TYPE structure is used in conjunction with the Av61883_SetUnitInfo request to set the parameters that the IEC-61883 protocol driver should use when capturing and transmitting isochronous packets.
SET_FCP_NOTIFY

This structure is used for FCP notification.
SET_LOCAL_HOST_PROPS2

SET_LOCAL_HOST_PROPS2 sets a lower bound on the value the bus will use for its gap count.
SET_LOCAL_HOST_PROPS3

SET_LOCAL_HOST_PROPS3 contains the data necessary for defining or identifying one or more unit directories in the Configuration ROM of a 1394 Host Controller.
SET_UNIT_DIRECTORY

This structure is used to assign settings for a unit directory.
SET_UNIT_INFO

This structure is used to set unit information.
SPEED_MAP

The SPEED_MAP structure is stores a IEEE 1394 bus speed map.
TEXTUAL_LEAF

The TEXTUAL_LEAF structure describes the device description that can be stored in the Configuration ROM of devices that satisfy the PC 98 or PC 99 specifications.
TOPOLOGY_MAP

The TOPOLOGY_MAP structure is used to store an IEEE 1394 bus topology map. The relations between devices are found in the port members of the entries in TOP_Self_ID_Array.
UNIT_DDI_VERSION

The UNIT_DDI_VERSION structure is used in conjunction with the Av61883_GetUnitInfo request to retrieve the current 61883 DDI version.
UNIT_DIAG_LEVEL

The UNIT_DDI_VERSION structure is used in conjunction with the Av61883_GetUnitInfo request to retrieve the current diag level
UNIT_ISOCH_PARAMS

The UNIT_ISOCH_PARAMS structure is used to get or set the parameters that the IEC-61883 protocol driver uses when capturing or transmitting isochronous packets.