estrutura HW_STREAM_OBJECT (strmini.h)

HW_STREAM_OBJECT descreve uma instância de um fluxo de minidriver.

Sintaxe

typedef struct _HW_STREAM_OBJECT {
  ULONG                          SizeOfThisPacket;
  ULONG                          StreamNumber;
  PVOID                          HwStreamExtension;
  PHW_RECEIVE_STREAM_DATA_SRB    ReceiveDataPacket;
  PHW_RECEIVE_STREAM_CONTROL_SRB ReceiveControlPacket;
  HW_CLOCK_OBJECT                HwClockObject;
  BOOLEAN                        Dma;
  BOOLEAN                        Pio;
  PVOID                          HwDeviceExtension;
  ULONG                          StreamHeaderMediaSpecific;
  ULONG                          StreamHeaderWorkspace;
  BOOLEAN                        Allocator;
  PHW_EVENT_ROUTINE              HwEventRoutine;
  ULONG                          Reserved[2];
} HW_STREAM_OBJECT, *PHW_STREAM_OBJECT;

Membros

SizeOfThisPacket

Especifica o tamanho, em bytes, dessa estrutura.

StreamNumber

Especifica o deslocamento do fluxo dentro da estrutura de HW_STREAM_DESCRIPTOR do minidriver.

HwStreamExtension

Aponta para a extensão de fluxo, um buffer alocado pelo driver de classe para o minidriver usar para armazenar informações privadas sobre esse fluxo. O minidriver define o tamanho do buffer na estrutura HW_INITIALIZATION_DATA que ele passa quando ele se registra com o driver da classe de fluxo.

ReceiveDataPacket

Ponteiro para a rotina StrMiniReceiveStreamDataPacket do fluxo.

ReceiveControlPacket

Ponteiro para a rotina StrMiniReceiveStreamControlPacket do fluxo.

HwClockObject

Contém o objeto de relógio do fluxo. Consulte HW_CLOCK_OBJECT para obter detalhes.

Dma

Se TRUE, o dispositivo usará o DMA para transferir dados para esse fluxo.

Pio

Se TRUE, o dispositivo usará E/S programada para transferir dados para esse fluxo. Observe que os membros Pio e Dma podem ser TRUE.

HwDeviceExtension

Ponteiro para a extensão de dispositivo do minidriver. O minidriver pode usar esse buffer para registrar informações privadas. O minidriver define o tamanho desse buffer na estrutura HW_INITIALIZATION_DATA que ele passa quando ele se registra por meio de StreamClassRegisterMinidriver. O driver de classe também passa ponteiros para esse buffer no membro HwDeviceExtension do HW_STREAM_REQUEST_BLOCK, HW_TIME_CONTEXT e PORT_CONFIGURATION_INFORMATION estruturas que ele passa para o minidriver.

StreamHeaderMediaSpecific

Especifica o tamanho em bytes da extensão de cabeçalho por fluxo específica da mídia.

StreamHeaderWorkspace

Especifica o tamanho do workspace por cabeçalho de fluxo.

Allocator

Especifica TRUE se o driver usa alocadores. A maioria dos minidrivers define esse valor como FALSE.

HwEventRoutine

Ponteiro para a rotina StrMiniEvent do fluxo

Reserved[2]

Reservado para uso do sistema. Não use.

Comentários

Essa estrutura é criada pelo driver de classe para conter informações sobre um fluxo específico no minidriver. Para cada solicitação específica do fluxo, o driver de classe passa o HW_STREAM_OBJECT para o fluxo no membro StreamObject do bloco de solicitação de fluxo (Consulte HW_STREAM_REQUEST_BLOCK).

Quando o driver de classe abre o fluxo e emite a solicitação SRB_OPEN_STREAM para a rotina StrMiniReceiveDevicePacket do minidriver, o minidriver inicializa o objeto stream.

Requisitos

Requisito Valor
Cabeçalho strmini.h (inclua Strmini.h)

Confira também

HW_CLOCK_OBJECT