Condividi tramite


Struttura IRB (1394.h)

I driver usano questa struttura per passare la maggior parte delle richieste al driver del bus IEEE 1394.

Sintassi

typedef struct _IRB {
  ULONG     FunctionNumber;
  ULONG     Flags;
  ULONG_PTR BusReserved[IRB_BUS_RESERVED_SZ];
  ULONG_PTR PortReserved[IRB_PORT_RESERVED_SZ];
  union {
    IRB_REQ_ASYNC_READ                          AsyncRead;
    IRB_REQ_ASYNC_WRITE                         AsyncWrite;
    IRB_REQ_ASYNC_LOCK                          AsyncLock;
    IRB_REQ_ISOCH_ALLOCATE_BANDWIDTH            IsochAllocateBandwidth;
    IRB_REQ_ISOCH_ALLOCATE_CHANNEL              IsochAllocateChannel;
    IRB_REQ_ISOCH_ALLOCATE_RESOURCES            IsochAllocateResources;
    IRB_REQ_ISOCH_ATTACH_BUFFERS                IsochAttachBuffers;
    IRB_REQ_ISOCH_DETACH_BUFFERS                IsochDetachBuffers;
    IRB_REQ_ISOCH_FREE_BANDWIDTH                IsochFreeBandwidth;
    IRB_REQ_ISOCH_FREE_CHANNEL                  IsochFreeChannel;
    IRB_REQ_ISOCH_FREE_RESOURCES                IsochFreeResources;
    IRB_REQ_ISOCH_LISTEN                        IsochListen;
    IRB_REQ_ISOCH_QUERY_CURRENT_CYCLE_TIME      IsochQueryCurrentCycleTime;
    IRB_REQ_ISOCH_QUERY_RESOURCES               IsochQueryResources;
    IRB_REQ_ISOCH_SET_CHANNEL_BANDWIDTH         IsochSetChannelBandwidth;
    IRB_REQ_ISOCH_STOP                          IsochStop;
    IRB_REQ_ISOCH_TALK                          IsochTalk;
    IRB_REQ_ISOCH_MODIFY_STREAM_PROPERTIES      IsochModifyStreamProperties;
    IRB_REQ_ALLOCATE_ADDRESS_RANGE              AllocateAddressRange;
    IRB_REQ_FREE_ADDRESS_RANGE                  FreeAddressRange;
    IRB_REQ_GET_LOCAL_HOST_INFORMATION          GetLocalHostInformation;
    IRB_REQ_GET_1394_ADDRESS_FROM_DEVICE_OBJECT Get1394AddressFromDeviceObject;
    IRB_REQ_CONTROL                             Control;
    IRB_REQ_GET_MAX_SPEED_BETWEEN_DEVICES       GetMaxSpeedBetweenDevices;
    IRB_REQ_SET_DEVICE_XMIT_PROPERTIES          SetDeviceXmitProperties;
    IRB_REQ_SET_LOCAL_HOST_PROPERTIES           SetLocalHostProperties;
    IRB_REQ_GET_CONFIGURATION_INFORMATION       GetConfigurationInformation;
    IRB_REQ_GET_CONFIG_ROM                      GetConfigRom;
    IRB_REQ_BUS_RESET                           BusReset;
    IRB_REQ_GET_GENERATION_COUNT                GetGenerationCount;
    IRB_REQ_SEND_PHY_CONFIGURATION_PACKET       SendPhyConfigurationPacket;
    IRB_REQ_SEND_PHY_PACKET                     SendPhyPacket;
    IRB_REQ_RECEIVE_PHY_PACKETS                 ReceivePhyPackets;
    IRB_REQ_GET_SPEED_TOPOLOGY_MAPS             GetSpeedTopologyMaps;
    IRB_REQ_BUS_RESET_NOTIFICATION              BusResetNotification;
    IRB_REQ_ASYNC_STREAM                        AsyncStream;
  } u;
} IRB, *PIRB;

Members

FunctionNumber

Determina il tipo di richiesta. Ogni tipo di richiesta è documentato nel valore functionNumber nelle richieste di I/O del bus IEEE 1394.

Flags

Riservato. I driver devono impostare questo membro su zero con un'eccezione. Quando si effettua una richiesta di REQUEST_ISOCH_ALLOCATE_BANDWIDTH , il chiamante può impostare il flag IRB_FLAG_ALLOW_REMOTE_FREE in Flag per indicare che il sistema deve liberare la memoria dell'handle di larghezza di banda a cui punta isochAllocateBandwidth.hBandwidth. Se il chiamante non imposta questo flag, il chiamante dovrà liberare l'handle di larghezza di banda.

BusReserved[IRB_BUS_RESERVED_SZ]

Riservato.

PortReserved[IRB_PORT_RESERVED_SZ]

Riservato.

u

Specifica un'unione di strutture, una per ogni valore di FunctionNumber. I membri secondari applicabili di u per ogni richiesta vengono descritti con ogni tipo di richiesta nelle richieste di I/O del bus IEEE 1394.

FunctionNumber Membro associato
REQUEST_ALLOCATE_ADDRESS_RANGE AllocateAddressRange
REQUEST_ASYNC_LOCK AsyncLock
REQUEST_ASYNC_READ AsyncRead
REQUEST_ASYNC_STREAM AsyncStream
REQUEST_ASYNC_WRITE AsyncWrite
REQUEST_ISOCH_ALLOCATE_BANDWIDTH IsochAllocateBandwidth
REQUEST_ISOCH_DETACH_BUFFERS IsochDetachBuffers
REQUEST_ISOCH_LISTEN IsochListen
REQUEST_ISOCH_MODIFY_STREAM_PROPERTIES IsochModifyStreamProperties
REQUEST_ISOCH_QUERY_RESOURCES IsochQueryResources
REQUEST_ISOCH_SET_CHANNEL_BANDWIDTH IsochSetChannelBandwidth
REQUEST_FREE_ADDRESS_RANGE FreeAddressRange
REQUEST_GET_CONFIG_ROM GetConfigRom
REQUEST_GET_LOCAL_HOST_INFO GetLocalHostInformation
REQUEST_GET_SPEED_BETWEEN_DEVICES GetMaxSpeedBetweenDevices
REQUEST_GET_SPEED_TOPOLOGY_MAPS GetSpeedTopologyMaps
REQUEST_SEND_PHY_CONFIG_PACKET SendPhyConfigurationPacket
REQUEST_SEND_PHY_PACKET SendPhyPacket
REQUEST_SET_LOCAL_HOST_PROPERTIES SetLocalHostProperties
REQUEST_SET_DEVICE_XMIT_PROPERTIES SetDeviceXmitProperties
REQUEST_RECEIVE_PHY_PACKET ReceivePhyPackets

u.AsyncRead

u.AsyncWrite

u.AsyncLock

u.IsochAllocateBandwidth

u.IsochAllocateChannel

u.IsochAllocateResources

u.IsochAttachBuffers

u.IsochDetachBuffers

u.IsochFreeBandwidth

u.IsochFreeChannel

u.IsochFreeResources

u.IsochListen

u.IsochQueryCurrentCycleTime

u.IsochQueryResources

u.IsochSetChannelBandwidth

u.IsochStop

u.IsochTalk

u.IsochModifyStreamProperties

u.AllocateAddressRange

u.FreeAddressRange

u.GetLocalHostInformation

u.Get1394AddressFromDeviceObject

u.Control

u.GetMaxSpeedBetweenDevices

u.SetDeviceXmitProperties

u.SetLocalHostProperties

u.GetConfigurationInformation

u.GetConfigRom

u.BusReset

u.GetGenerationCount

u.SendPhyConfigurationPacket

u.SendPhyPacket

u.ReceivePhyPackets

u.GetSpeedTopologyMaps

u.BusResetNotification

u.AsyncStream

Commenti

Il membro Parameters-Others.Arguments1> di un IOCTL_1394_CLASS IRP punta a una struttura IRB. Il conducente del bus usa LRB per determinare il tipo di richiesta effettuata dal driver del dispositivo e anche per restituire i risultati dell'operazione. Per una descrizione del comportamento di ogni richiesta, vedere Richieste di I/O del bus IEEE 1394 .

Requisiti

Requisito Valore
Intestazione 1394.h (include 1394.h)

Vedi anche

IOCTL_1394_CLASS