AVC_STREAM_REQUEST_BLOCK structure (avcstrm.h)

The AVC_STREAM_REQUEST_BLOCK structure describes an AV/C streaming request to be processed by avcstrm.sys.

Syntax

typedef struct _AVC_STREAM_REQUEST_BLOCK {
  ULONG            SizeOfThisBlock;
  ULONG            Version;
  AVCSTRM_FUNCTION Function;
  ULONG            Flags;
  NTSTATUS         Status;
  PVOID            AVCStreamContext;
  PVOID            Context1;
  PVOID            Context2;
  PVOID            Context3;
  PVOID            Context4;
  ULONG            Reserved[4];
  union {
    KSSTATE               StreamState;
    AVCSTRM_OPEN_STRUCT   OpenStruct;
    AVCSTRM_BUFFER_STRUCT BufferStruct;
  } CommandData;
  _tagCommandData  _tagCommandData;
} AVC_STREAM_REQUEST_BLOCK, *PAVC_STREAM_REQUEST_BLOCK;

Members

SizeOfThisBlock

Specifies the size of the request block in bytes. Do not set this value directly. Instead, use the INIT_AVCSTRM_HEADER macro.

Version

Specifies the version of avcstrm.sys device driver interface (DDI) to service a request. Do not set this value directly. Instead, use the INIT_AVCSTRM_HEADER macro.

Function

Indicates the request (function code) avcstrm.sys services. This must be a value from the AVCSTRM_FUNCTION enumeration. Do not set this value directly. Instead, use the INIT_AVCSTRM_HEADER macro.

Flags

Special flags to indicate special service or deviation from standard service. This is currently not used.

Status

Final status of this request.

AVCStreamContext

This is context (handle) of a stream. Set this to NULL for the AVCSTRM_OPEN function code. For other function codes, this must be set to a valid value retrieved from an earlier call to AVCSTRM_OPEN.

Context1

The context pointers of the client.

Context2

The context pointers of the client.

Context3

The context pointers of the client.

Context4

The context pointers of the client.

Reserved[4]

Reserved. Do not use.

CommandData

This is a union of command data to be passed to avcstrm.sys for service.

Flag Description
StreamState Specifies the current state of the specified stream. This is used with the AVCSTRM_GET_STATE and AVCSTRM_SET_STATE function codes.
OpenStruct Specifies a description of a stream to open. This is used with the AVCSTRM_OPEN function code.
BufferStruct Specifies a description of a buffer used to read or write data from/to a specified stream. This is used with the AVCSTRM_READ and AVCSTRM_WRITE function codes.

CommandData.StreamState

Defines the KSSTATE member StreamState.

CommandData.OpenStruct

Defines the AVCSTRM_OPEN_STRUCT member OpenStruct.

CommandData.BufferStruct

Defines the AVCSTRM_BUFFER_STRUCT member BufferStruct.

_tagCommandData

Defines the _tagCommandData member _tagCommandData.

Remarks

The AVC_STREAM_REQUEST_BLOCK is the primary structure used by a subunit driver to interface with avcstrm.sys.

Every AV/C stream request is described by this structure. This structure is passed as part of the IRP to avcstrm.sys for service..

To use this structure, set the IRP's Irp->Parameters->Others.Argument1 member to an allocated and initialized AVC_STREAM_REQUEST_BLOCK that describes the request (functionality) that the subunit driver wants avcstrm.sys to service.

Requirements

Requirement Value
Header avcstrm.h (include Avcstrm.h)

See also

AVCSTRM_ABORT_STREAMING

AVCSTRM_BUFFER_STRUCT

AVCSTRM_CLOSE

AVCSTRM_FUNCTION

AVCSTRM_GET_PROPERTY

AVCSTRM_GET_STATE

AVCSTRM_OPEN

AVCSTRM_OPEN_STRUCT

AVCSTRM_READ

AVCSTRM_SET_PROPERTY

AVCSTRM_SET_STATE

AVCSTRM_WRITE

KSSTATE