Compartir a través de


IEEE 1394 Virtual VCR Application (Windows CE 5.0)

Send Feedback

Be sure that the medium that the application uses as permanent storage while streaming can handle the necessary throughput for the appropriate stream. File systems, many types of storage, and hard drives with varying DMA characteristics might be incapable of managing the necessary amount of sustained throughput. This may result in overflow while recording or underflow while playing. During an overflow condition, incoming data might be dropped because the hard drive may not be able to write it fast enough. During an underflow condition, data might not be transmitted on time because the hard drive may not be able to provide data fast enough.

Initialization Issues for a Virtual VCR Application

The following table shows how an application using the IEEE 1394 virtual VCR driver should respond to issues that arise during initialization.

Initialization issue How the application should respond
Determining which predefined plugs exist and what their handles are. Use IOCTL_VVCR_QUERY_STATE.
Determining what the appropriate streaming frame size is for the type by utilizing IOCTL_STREAM_GET_MEDIA_SIZE. Use the media type definition from IOCTL_VVCR_QUERY_STATE.
Initiating streaming sessions against the plugs for each plug returned by IOCTL_VVCR_QUERY_STATE. Use the direction and handle values. The plugs from IOCTL_VVCR_QUERY_STATE are considered remote plugs in the context of IOCTL_STREAM_START_RECV_SESSION or IOCTL_STREAM_START_XMIT_SESSION.
Initiating an appropriate streaming buffering system for the application. Handle buffer streaming through the streaming filter driver using IOCTL_STREAM_ATTACH_BUFFER, IOCTL_STREAM_DETACH_BUFFER, and IOCTL_STREAM_QUERY_BUFFER_STATE.

Run-Time Issues for a Virtual VCR Application

The following table shows how an application using the IEEE 1394 virtual VCR driver should respond to issues during run-time.

Run-time issue How the application should respond
Incoming events come from the virtual VCR driver. Issue at least one IOCTL_VVCR_EVENT command asynchronously.
IOCTL_VVCR_EVENT notifies the application of a request to play, wind, or record. Change the state and begin streaming to the output plug.
A request is located in the results from IOCTL_VVCR_QUERY_STATE. Stream from the input plug.
A request is located in the results from IOCTL_VVCR_EVENT. Cease all streaming or move the emulated tape, by rewinding it, fast forwarding it, and so on.
IOCTL_VVCR_EVENT returns a plug state change event that introduces an unknown plug, rather than one previously obtained from IOCTL_VVCR_QUERY_STATE. Issue IOCTL_VVCR_QUERY_STATE to determine any remaining details about the plug and process it as needed.
IOCTL_VVCR_EVENT notifies the application of a request to scan to a different tape location. Move the emulated tape appropriately.
The position of the emulated tape changes. Use IOCTL_VVCR_SET_MECHANISM_POSITION.
The emulated tape state changes, for example, from stop to play or from play to rewind. Use IOCTL_VVCR_SET_MECHANISM_STATE.

Send Feedback on this topic to the authors

Feedback FAQs

© 2006 Microsoft Corporation. All rights reserved.