GET_LOCAL_HOST_INFO2 structure (1394.h)

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.

Syntax

typedef struct _GET_LOCAL_HOST_INFO2 {
  ULONG HostCapabilities;
  ULONG MaxAsyncReadRequest;
  ULONG MaxAsyncWriteRequest;
} GET_LOCAL_HOST_INFO2, *PGET_LOCAL_HOST_INFO2;

Members

HostCapabilities

Indicates the host capabilities. The following table lists the values that can be assigned to th is member:

Flag Description
HOST_INFO_PACKET_BASED The host controller supports packet-based isochronous transactions.
HOST_INFO_STREAM_BASED The host controller supports stream-based isochronous transactions.
HOST_INFO_SUPPORTS_ISOCH_STRIPPING The host controller supports configurable stripping of header information.
HOST_INFO_SUPPORTS_START_ON_CYCLE The host controller supports synchronizing start on specific isochronous cycle times.
HOST_INFO_SUPPORTS_RETURNING_ISO_HDR The host controller does not automatically strip off the isochronous packet header.
HOST_INFO_SUPPORTS_ISO_HDR_INSERTION The host controller supports the DESCRIPTOR_HEADER_SCATTER_GATHER flag in ISOCH_DESCRIPTOR.
HOST_INFO_SUPPORTS_ISO_DUAL_BUFFER_RX The host controller supports the RESOURCE_VARIABLE_ISOCH_PAYLOAD flag in ISOCH_DESCRIPTOR.
HOST_INFO_DMA_DOUBLE_BUFFERING_ENABLED DMA transfers that are made to/from the host controller will be double-buffered by using system map registers. System map registers limit the size of a single transfer. Check the MaxDmaBufferSize value that is returned in the GET_LOCAL_HOST_INFO7 structure by a REQUEST_GET_LOCAL_HOST_INFO request and limit the transfer size accordingly.

MaxAsyncReadRequest

The bus driver fills in this member with the maximum size asynchronous read request that the host controller supports.

MaxAsyncWriteRequest

The bus driver fills in this member with the maximum size asynchronous write request that the host controller supports.

Remarks

Port drivers that return the HOST_INFO_PACKET_BASED flag support the IsochAllocateResources request's RESOURCE_USE_PACKET_BASED flag. Port drivers that return the HOST_STREAM_PACKET_BASED flag support stream-based I/O. If the host controller does not support stream-based I/O, the driver must use packet-based I/O, and set the RESOURCE_USE_PACKET_BASED flag when issuing the REQUEST_ISOCH_ALLOCATE_RESOURCES.

Some host controllers automatically strip the packet header off an isochronous packet. If a host controller does not automatically strip the header, the port driver returns the HOST_INFO_SUPPORTS_ISO_HDR flag. Some host controllers allow a driver to configure the host controller to strip off a given number of quadlets; for such controllers the port driver returns the HOST_INFO_SUPPORTS_ISOCH_STRIPPING flag. The driver should check this flag before calling REQUEST_ISOCH_ALLOCATE_RESOURCES with the RESOURCE_STRIP_ADDITIONAL_QUADLETS flag.

If a host controller supports synchronizing REQUEST_ISOCH_LISTEN and REQUEST_ISOCH_TALK requests to the isochronous cycle time, the port driver returns the HOST_INFO_SUPPORTS_START_ON_CYCLE. Drivers should check this flag before attempting to issue an REQUEST_ISOCH_ALLOCATE_RESOURCES request using the RESOURCE_SYNCH_ON_TIME flag, or before attaching a buffer whose ISOCH_DESCRIPTOR has the DESCRIPTOR_SYNCH_ON_TIME flag set.

Requirements

Requirement Value
Header 1394.h (include 1394.h)

See also

GET_LOCAL_HOST_INFO7

ISOCH_DESCRIPTOR

REQUEST_GET_LOCAL_HOST_INFO

REQUEST_ISOCH_ALLOCATE_RESOURCES