// avcstrm.h
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;
View the official Windows Driver Kit DDI referenceNo description available.
The AVC_STREAM_REQUEST_BLOCK structure describes an AV/C streaming request to be processed by avcstrm.sys.
SizeOfThisBlockSpecifies the size of the request block in bytes. Do not set this value directly. Instead, use the INIT_AVCSTRM_HEADER macro.
VersionSpecifies 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.
FunctionIndicates 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.
FlagsSpecial flags to indicate special service or deviation from standard service. This is currently not used.
StatusFinal status of this request.
AVCStreamContextThis 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.
Context1The context pointers of the client.
Context2The context pointers of the client.
Context3The context pointers of the client.
Context4The context pointers of the client.
ReservedReserved. Do not use.
CommandDataThis 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.StreamStateDefines the KSSTATE member StreamState.
CommandData.OpenStructDefines the AVCSTRM_OPEN_STRUCT member OpenStruct.
CommandData.BufferStructDefines the AVCSTRM_BUFFER_STRUCT member BufferStruct.
_tagCommandDataDefines the _tagCommandData member _tagCommandData.
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.