Microsoft 1394 Driver Download For Windows

Microsoft 1394 Driver Download For Windows-->

3com mini pci 56k modem driver download for windows 10. Overview of the IEEE 1394 bus technology.

For

1394 OHCI Compliant Host Controller (Legacy) - Driver Download. Vendor: 1394 OHCI Compliant Host Controller. Windows 7 32-Bit Driver. Total Driver Versions: 1. The IEEE 1394 Driver Stack. Installing IEEE 1394 Device Drivers. Asynchronous I/O for IEEE 1394 Devices. Isochronous I/O for IEEE 1394 Devices. Modifying the 1394 Configuration ROM. IEEE 1394 Hardware Emulation Drivers. 1394 Samples and Diagnostic Tools. IEC-61883 Client Drivers.

To develop IEEE 1394 bus, you need these headers:

For the programming guide, see IEEE 1394 bus.

IOCTLs

TitleDescription
IOCTL_1394_CLASSAn 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_CLASSAn 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

TitleDescription
CMP_CONNECT_TYPEThis enumeration specifies a connection type.
CMP_PLUG_LOCATIONThis enumeration specifies the location of a plug.
CMP_PLUG_TYPEThis enumeration specifies the type of a plug.

Functions

TitleDescription
PBUS_RESET_ROUTINEThis is a caller-supplied function to be called by the protocol driver when the 1394 bus is reset.
PCMP_MONITOR_ROUTINEThis routine is called for plug monitoring.
PCMP_NOTIFY_ROUTINEThis routine is called for plug notification.

Microsoft 1394 Driver Download For Windows 8.1

Structures

TitleDescription
ADDRESS_FIFOThe ADDRESS_FIFO structure is an entry in a singly-linked list of MDLs used by the REQUEST_ALLOCATE_ADDRESS_RANGE IEEE 1394 bus request.
ADDRESS_OFFSETThe ADDRESS_OFFSET structure specifies the 48-bit address within a device's IEEE 1394 address space.
ADDRESS_RANGEThe ADDRESS_RANGE structure describes a range in a IEEE 1394 device's address space.
AV_61883_REQUESTThe AV_61883_REQUEST structure is used to pass requests to the IEC-61883 protocol driver.
AV_PCRThe AV_PCR structure specifies settings for an input or output plug.
BUS_GENERATION_NODEThe BUS_GENERATION_NODE structure is used in conjunction with the Av61883_GetUnitInfo request to retrieve bus characteristics.
BUS_RESET_DATAThe BUS_RESET_DATA structure specifies the context for the extended bus reset notification routine.
BUS_RESET_NOTIFYThis structure is used to register or deregister the PBUS_RESET_ROUTINE callback.
CIP_ATTACH_FRAMEThis structure is used in an attach frame request.
CIP_CANCEL_FRAMEThe request cancels an attached frame buffer. A frame can be canceled while the stream is running.
CIP_DATA_FORMAT_VER2This structure is a CIP data format which is used by CMP_CONNECT_VER2.
CIP_DATA_FORMAT_VER3This structure is used by CipDataFormat.
CIP_FRAMEThe CIP_FRAME structure describes a frame to be attached to an input or output plug.
CIP_LISTENThis structure is used for a listen request. The request begins isochronous reception on the specified connection.
CIP_NOTIFY_INFOThe CIP_NOTIFY_INFO structure contains information about the frame.
CIP_STOPThis structure is used to stop transmission or reception.
CIP_TALKThis structure is used to begin transmission.
CIP_VALIDATE_INFOThe CIP_VALIDATE_INFO structure contains information about the frame.
CMP_CONNECT_VER2This 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_VER3This structure contains information for a connection request.
CMP_CREATE_PLUGThis structure is used to create a plug.
CMP_DELETE_PLUGThis structure is used to delete a plug.Av61883_CreatePlug.
CMP_DISCONNECTThis structure is used to break a connection.
CMP_GET_PLUG_HANDLEThis structure is used in getting the handle of a plug.
CMP_GET_PLUG_STATEThis structure is used in getting the state of a plug.
CMP_MONITOR_INFOThe 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_PLUGSThis structure is used to monitor plug access. The request allows a driver to monitor all access to local oPCR and iPCR plugs.
CMP_NOTIFY_INFOThis structure is used by the PCMP_NOTIFY_ROUTINE callback.
CMP_SET_PLUGThis structure is used to assign settings to a plug.
CONFIG_ROMThe CONFIG_ROM structure is used to contain the first 24 bytes of an IEEE 1394 device's configuration ROM.
CYCLE_TIMEThe CYCLE_TIME structure contains the IEEE 1394 isochronous cycle time.
FCP_FRAMEThe FCP_FRAME structure describes a function control protocol (FCP) request.
FCP_GET_REQUESTThis structure is used for a get request.
FCP_REQUESTThis structure is used for a send request.
FCP_RESPONSEThe 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_RESPONSEThis structure is used for a send response.
GET_LOCAL_HOST_INFO1The 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_INFO2The 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_INFO3The 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_INFO4The 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_INFO5The 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_INFO6The 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_W2KThe GET_LOCAL_HOST_INFO7 structure contains the data returned by a REQUEST_GET_LOCAL_HOST_INFO request with u.GetLocalHostInformation.nLevel set to GET_HOST_DMA_CAPABILITIES.
GET_LOCAL_HOST_INFO7_WXPThe GET_LOCAL_HOST_INFO7 structure contains the data returned by a REQUEST_GET_LOCAL_HOST_INFO request with u.GetLocalHostInformation.nLevel set to GET_HOST_DMA_CAPABILITIES.
GET_LOCAL_HOST_INFO8The 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_CAPABILITIESThe GET_UNIT_CAPABILITIES structure is used in conjunction with the Av61883_GetUnitInfo request to retrieve unit information about a device's capabilities.
GET_UNIT_IDSThe GET_UNIT_CAPABILITIES structure is used in conjunction with the Av61883_GetUnitInfo request to retrieve device identifiers.
GET_UNIT_INFOThis structure is used to get unit information.
IO_ADDRESSThe IO_ADDRESS structure specifies the 1394 64-bit destination address for read, write and lock operations.
IPCRThe IPCR structure contains initialization values for an input plug.
IRBDrivers use this structure to pass most requests to IEEE 1394 bus driver.
IRB_REQ_ALLOCATE_ADDRESS_RANGEThis structure contains the fields necessary for the 1394 stack to carry out a request to allocate an address range.
IRB_REQ_ASYNC_LOCKThis structure contains the fields necessary for the 1394 stack to carry out an asychronous lock request.
IRB_REQ_ASYNC_READThis structure contains the fields necessary for the 1394 stack to carry out an asynchronous read request.
IRB_REQ_ASYNC_STREAMThis structure contains the fields necessary for the 1394 bus driver to carry out an asynchronous write request.
IRB_REQ_ASYNC_WRITEThis structure contains the fields necessary for the 1394 stack to carry out an asynchronous write request.
IRB_REQ_BUS_RESETThis structure contains the fields necessary for the 1394 bus driver to create a bus reset request.
IRB_REQ_BUS_RESET_NOTIFICATIONThis structure contains the fields necessary for the 1394 bus driver to carry out a bus reset notification request.
IRB_REQ_CONTROLThis structure contains the fields necessary for the 1394 bus driver to carry out a control request.
IRB_REQ_FREE_ADDRESS_RANGEThis structure contains the fields necessary for the 1394 stack to carry out a free address range reqeust.
IRB_REQ_GET_1394_ADDRESS_FROM_DEVICE_OBJECTThis structure contains the fields necessary to carry out a Get1394AddressFromDeviceObject request.
IRB_REQ_GET_CONFIG_ROMThis structure contains the fields necessary for the bus driver to carry out a GetConfigRom request.
IRB_REQ_GET_CONFIGURATION_INFORMATIONThis structure contains the fields necessary for the 1394 bus driver to carry out a GetConfigurationInformation request.
IRB_REQ_GET_GENERATION_COUNTThis structure contains the fields necessary for the 1394 bus driver to carry out a GetGenerationCount request.
IRB_REQ_GET_LOCAL_HOST_INFORMATIONThis structure contains the fields necessary for the 1394 bus driver to carry out a GetLocalHostInformation request.
IRB_REQ_GET_MAX_SPEED_BETWEEN_DEVICESThis structure contains the fields necessary in order for the Bus driver to carry out a GetMaxSpeedBetweenDevices request.
IRB_REQ_GET_SPEED_TOPOLOGY_MAPSThis structure contains the fields necessary for the 1394 bus driver to carry out a GetSpeedTopologyMaps request.
IRB_REQ_ISOCH_ALLOCATE_BANDWIDTHThis structure contains the fields necessary in order for the Bus driver to carry out an IsochAllocateBandwidth request.
IRB_REQ_ISOCH_ALLOCATE_CHANNELThis structure contains the fields necessary in order for the 1394 bus driver to carry out an IsochAllocateChannel request.
IRB_REQ_ISOCH_ALLOCATE_RESOURCES_W2KThis structure contains the fields necessary for the 1394 bus driver to carry out a IsochAllocateResources request.
IRB_REQ_ISOCH_ALLOCATE_RESOURCES_WXPThis structure contains the fields necessary for the 1394 bus driver to carry out a IsochAllocateResources request.
IRB_REQ_ISOCH_ATTACH_BUFFERSThis structure contains the fields required for the 1394 bus driver to carry out a IsochAttachBuffers request.
IRB_REQ_ISOCH_DETACH_BUFFERSThis structure contains the fields required to carry out a IsochDetachBuffers request.
IRB_REQ_ISOCH_FREE_BANDWIDTHThis structure contains the fields necessary in order for the Bus driver to carry out an IsochFreeBandwidth request.
IRB_REQ_ISOCH_FREE_CHANNELThis structure contains the fields required to carry out a IsochFreeChannel request.
IRB_REQ_ISOCH_FREE_RESOURCESThis structure contains the fields necessary to carry out a IsochFreeResources request.
IRB_REQ_ISOCH_LISTENThis structure contains the fields necessary to carry out a ReqIsochListen request.
IRB_REQ_ISOCH_MODIFY_STREAM_PROPERTIESThis structure contains the fields necessary for the Bus driver to carry out an IsochModifyStreamProperties request.
IRB_REQ_ISOCH_QUERY_CURRENT_CYCLE_TIMEThis structure contains the fields necessary for the Bus driver to carry out an IsochQueryCurrentCycleTime request.
IRB_REQ_ISOCH_QUERY_RESOURCESThis structure contains the fields necessary to carry out a IsochQueryResources request.
IRB_REQ_ISOCH_SET_CHANNEL_BANDWIDTHThis structure contains the fields necessary for the Bus driver to carry out an IsochSetChannelBandwidth request.
IRB_REQ_ISOCH_STOPThis structure contains the field necessary to carry out a IsochStop request.
IRB_REQ_ISOCH_TALKThis structure contains the field necessary to carry out a IsochTalk request.
IRB_REQ_RECEIVE_PHY_PACKETSThis structure contains the fields necessary to carry out a ReceivePhyPackets request.
IRB_REQ_SEND_PHY_CONFIGURATION_PACKETThis structure contains the fields necessary to carry out a SendPhyConfigurationPacket request.
IRB_REQ_SEND_PHY_PACKETThis structure contains the fields necessary to carry out a SendPhyPacket request.
IRB_REQ_SET_DEVICE_XMIT_PROPERTIESThis structure contains the fields necessary to carry out a SetDeviceXmitProperties request.
IRB_REQ_SET_LOCAL_HOST_PROPERTIESThis structure contains the fields required to carry out a SetLocalHostProperties request.
ISOCH_DESCRIPTORThe 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_ADDRESSThe 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_W2KThe bus driver passes NOTIFICATION_INFO to pass information to the driver-provided notification routine for a driver-allocated address range in the computer's IEEE 1394 address space.
NOTIFICATION_INFO_WXPThe bus driver passes NOTIFICATION_INFO to pass information to the driver-provided notification routine for a driver-allocated address range in the computer's IEEE 1394 address space.
OPCRThe OPCR structure contains initialization values for an output plug.
PHY_CONFIGURATION_PACKETThe PHY_CONFIGURATION_PACKET structure contains a raw PHY configuration packet.
SELF_IDThe SELF_ID structure contains a raw packet zero self-ID packet. See the IEEE 1394 Trade Association specification website for details.
SELF_ID_MOREThe 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_TYPEThe 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_NOTIFYThis structure is used for FCP notification.
SET_LOCAL_HOST_PROPS2SET_LOCAL_HOST_PROPS2 sets a lower bound on the value the bus will use for its gap count.
SET_LOCAL_HOST_PROPS3SET_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_DIRECTORYThis structure is used to assign settings for a unit directory.
SET_UNIT_INFOThis structure is used to set unit information.
SPEED_MAPThe SPEED_MAP structure is stores a IEEE 1394 bus speed map.
TEXTUAL_LEAFThe 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_MAPThe 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_VERSIONThe UNIT_DDI_VERSION structure is used in conjunction with the Av61883_GetUnitInfo request to retrieve the current 61883 DDI version.
UNIT_DIAG_LEVELThe UNIT_DDI_VERSION structure is used in conjunction with the Av61883_GetUnitInfo request to retrieve the current diag level
UNIT_ISOCH_PARAMSThe 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.
-->

Windows 7 includes 1394ohci.sys, a new IEEE 1394 bus driver that supports faster speeds and alternative media as defined in the IEEE-1394b specification. The 1394ohci.sys bus driver is a single (monolithic) device driver, implemented by using the kernel-mode driver framework (KMDF). The legacy 1394 bus driver (available in earlier versions of Windows) includes multiple device drivers that were implemented by using the Windows Driver Model (WDM) in a port/miniport configuration. The 1394ohci.sys bus driver replaces the legacy port driver, 1394bus.sys, and the primary miniport driver, ochi1394.sys.

The new 1394ohci.sys bus driver is fully backward compatible with the legacy bus driver. This topic describes some of the known differences in behavior between the new and the legacy 1394 bus driver.

Microsoft 1394 Driver Download For Windows

Note

The 1394ohci.sys driver is a system driver that is included in Windows. It is automatically loaded when you install a 1394 controller. This is not a redistributable driver that you can download separately.

I/O Request Completion

Driver

All I/O requests that are sent to the new 1394 bus driver return STATUS_PENDING because the 1394ohci.sys bus driver is implemented by using KMDF instead of WDM. 3com 10/100 pci nic w/3xp (3cr990-tx-95) driver. This behavior differs from that of the legacy 1394 bus driver, in which certain I/O requests complete immediately.

A client driver must wait until I/O requests sent to the new 1394 bus driver are complete. You can provide an I/O completion routine that is called after the request is complete. Drivers sysgration input devices. The status of the completed I/O request is in the IRP.

Configuration ROM Retrieval

The new 1394 bus driver tries to use asynchronous block transactions at faster bus speeds to retrieve the contents of a node's configuration ROM. The legacy 1394 bus driver uses asynchronous quadlet reads at S100 speed—or 100 megabits per second (Mbps). The 1394ohci.sys bus driver also uses the values that are specified in generation and max_rom entries of the node's configuration ROM header to improve the retrieval of the remaining content of the configuration ROM. For more information about how the new 1394 bus driver retrieves the contents of a node's configuration ROM, see Retrieving the Contents of a IEEE 1394 Node's Configuration ROM.

IEEE-1394-1995 PHY Support

The 1394ohci.sys bus driver requires a physical layer (PHY) that supports IEEE-1394a or IEEE-1394b. It does not support a PHY that supports IEEE-1394-1995. This requirement is due to the 1394ohci.sys bus driver's exclusive use of short (arbitrated) bus resets.

Microsoft 1394 Driver Download For Windows Xp

NODE_DEVICE_EXTENSION Structure Usage

Microsoft Ieee 1394 Driver Download Windows 7

A client driver can reference the device extension in the 1394 bus driver associated with the physical device object (PDO) for the device that the client driver controls. This device extension is described by the NODE_DEVICE_EXTENSION structure. In 1394ohci.sys, this structure remains at the same location as in the legacy 1394 bus driver, but the nonstatic members of the structure might not be valid. When a client driver uses the new 1394 bus driver, they must make sure that the data accessed in NODE_DEVICE_EXTENSION is valid. The static members of NODE_DEVICE_EXTENSION that contain valid data are Tag, DeviceObject, and PortDeviceObject. All other members NODE_DEVICE_EXTENSION are nonstatic, which the client driver must not reference.

Gap Count Optimization

The default behavior of the 1394ohci.sys bus driver is to optimize the gap count when it finds only IEEE 1394a devices on the 1394 bus, excluding the local node. For example, if the system that is running 1394ohci.sys has a host controller that complies with IEEE 1394b but all devices on the bus comply with IEEE 1394a, then the new 1394 bus driver tries to optimize the gap count.

Gap count optimization occurs only if the 1394ohci.sys bus driver determines that the local node is the bus manager.

The 1394ohci.sys bus driver determines whether a device complies with IEEE-1394a by the speed setting in the node's self-id packet. If a node sets both of the bits in the speed (sp) field in the self-id packet, then 1394ohci.sys considers the node to comply with IEEE-1394b. If the speed field contains any other value, then 1394ohci.sys considers the node to comply with IEEE-1394a. The gap count value that is used is based on table E-1 in the IEEE-1394a specification, which provides the gap count as a function of hops. The 1394ohci.sys bus driver does not compute the gap count. You can change the default gap count behavior by using a registry value. For more information, see Modifying the Default Behavior of the IEEE 1394 Bus Driver.

Microsoft 1394 Driver Download For Windows

Device Driver Interface (DDI) Changes

In Windows 7, the 1394 DDIs were changed to support faster speeds as defined by the 1394b specification and improved to simplify the development of 1394 client drivers. For more information about the general DDI changes that the new 1394 bus driver supports, see Device Driver Interface (DDI) Changes in Windows 7.

Microsoft 1394 Driver Download For Windows 7

Related topics

Microsoft 1394 Driver Download For Windows 10

The IEEE 1394 Driver Stack
Retrieving the Contents of a IEEE 1394 Node's Configuration ROM