Sample Virtual Interface Anatomy

[This is preliminary documentation and subject to change.]

After installing the Broadcast Architecture Programmer's Reference material, the Main.cpp files for both samples are available. These sample files aid the user in understanding the purpose of each sample and its relationship to the MMR. The following table shows how the MMR calls and the uses of the exported virtual interface functions. Documentation for the following exported virtual interface functions can be found in the Virtual Interface Functions section.

HRESULT msbdnOutputCreate(
  MSBDN_OUTPUT_SUBSYSTEM * subsystem,
  DWORD version);
Creates and initializes a single instance of a virtual interface. This function is required.
HRESULT msbdnOutputDestroy(
  MSBDN_OUTPUT_SUBSYSTEM * subsystem);
Destroys an instance of a virtual interface. This function is required.
HRESULT msbdnOutputFreeBuffer(
  MSBDN_OUTPUT_SUBSYSTEM * subsystem,
  LPVOID buffer);
Frees a buffer returned by msbdnOutputGetValue. This function is optional.
HRESULT msbdnOutputGetStatus(
  MSBDN_OUTPUT_SUBSYSTEM * subsystem,
  HRESULT * status);
Retrieves the status of a virtual interface. This function is required.
HRESULT msbdnOutputGetValue(
  MSBDN_OUTPUT_SUBSYSTEM * subsystem,
  MSBDN_OUTPUT_VALUE * value);
Retrieves a configuration value of a virtual interface. This function is optional.
HRESULT msbdnOutputGetValueCount(
  MSBDN_OUTPUT_SUBSYSTEM * subsystem,
  DWORD * count);
Retrieves the number of configuration values supported by a virtual interface. This function is optional.
HRESULT msbdnOutputSendPacket(
  MSBDN_OUTPUT_SUBSYSTEM * subsystem,
  PACKET_BUFFER * packet);
Sends all packets of a data stream to the output system. This function is required.
HRESULT msbdnOutputSetValue(
  MSBDN_OUTPUT_SUBSYSTEM * subsystem,
  MSBDN_OUTPUT_VALUE * value);
Assigns a configuration value to a virtual interface. This function is optional.