Compartilhar via


IOCTL_VCR_AVCCMD (Windows CE 5.0)

Send Feedback

This IOCTL permits the caller to make AV/C VCR subunit control code requests against the target VCR. Each of these control codes are listed and documented as a separate command under the names AVC_VCR_CMD_XXX.

BOOL DeviceIoControl(HANDLE hDevice,DWORD dwIoControlCode,LPVOID lpInBuffer,DWORD nInBufferSize,LPVOID lpOutBuffer,DWORD nOutBufferSize,LPDWORD lpBytesReturned,LPOVERLAPPED lpOverlapped);

Parameters

  • hDevice
    Handle to the target object. To get a device handle, call the CreateFile function with a name obtained dynamically from the SetupDiEnumDeviceInterfaces function.
  • dwIoControlCode
    Control code for the operation. This value identifies the target operation and the type of device on which to perform it. For this operation, use IOCTL_VCR_AVCCMD.
  • lpInBuffer
    This must be filled in with a properly initialized VCR_RequestResponse structure. The documentation on each individual command code shows which fields should be pre-initialized in this structure for that command.
  • nInBufferSize
    This should be to sizeof(VCR_RequestResponse).
  • lpOutBuffer
    This must point to a VCR_RequestResponse structure, typically the same structure listed previously. When this structure completes the requested command, it will contain the results of the transaction. The documentation for each command code describes which fields will contain data as a result of the command having been processed.
  • nOutBufferSize
    This should be set to sizeof(VCR_RequestResponse).
  • lpBytesReturned
    Pointer to a DWORD variable that receives the actual count of bytes returned by the function in the output buffer.
  • lpOverlapped
    If not used, NULL. Otherwise, this should point to a completely filled out OVERLAPPED structure that contains a valid event. The event will be signaled when the I/O operation is complete.

Return Values

If the operation succeeds, DeviceIoControl will return a non-zero value. If the operation fails, DeviceIoControl will return 0. To obtain extended error information, call GetLastError.

Remarks

This IOCTL covers quite a few different variant actions. The communication used to actually control a VCR subunit is a standard protocol documented by the IEEE 1394 Trade Association. This IOCTL provides a wrapper and packetization for a subset of the commands in the VCR subunit standard, the commands that are most likely to be implemented on a consumer product.

Keep in mind that the key processing for each of these commands occurs on the peripheral, not on TVPAK. This means that each brand or model of VCR might provide its own idiosyncrasies, and these should not be attributed to TVPAK.

Out of the consumer-based commands that TVPAK supports sending, only the smallest subset are listed by the VCR subunit standard as mandatory. Most consumer VCRs with IEEE 1394 interfaces support today only the absolute minimum commands necessary, which is typically only those listed as mandatory. Even though TVPAK is capable of sending many commands, the receiving VCR might not be capable of processing them.

The VCR_RequestResponse structure is primarily a union of the details of all of the command parameters and results processed.

The AV/C Digital Interface Command Set VCR Subunit Specification is a useful resource for understanding what a specific command does. However, data described within the document, especially in the topic of range values, might be overridden by this documentation. For example, the VCR subunit driver automatically manages decimal to BCD conversion for many of the supported commands.

Requirements

OS Versions: Windows CE .NET 4.0 and later.
Header: Avc_vcr.h.

See Also

CreateFile | DeviceIoControl | AVC_VCR_CMD_ANALOG_AUDIO_OUTPUT_MODE | AVC_VCR_CMD_INPUT_SIGNAL_MODE | AVC_VCR_CMD_LOAD_MEDIUM | AVC_VCR_CMD_MEDIUM_INFO | AVC_VCR_CMD_OUTPUT_SIGNAL_MODE | AVC_VCR_CMD_PLAY | AVC_VCR_CMD_RECORDING_DATE | AVC_VCR_CMD_RECORD | AVC_VCR_CMD_RECORDING_SPEED | AVC_VCR_CMD_RECORDING_TIME | AVC_VCR_CMD_RELATIVE_TIME_COUNTER | AVC_VCR_CMD_TIME_CODE | AVC_VCR_CMD_TRANSPORT_STATE | AVC_VCR_CMD_WIND | VCR_RequestResponse

Send Feedback on this topic to the authors

Feedback FAQs

© 2006 Microsoft Corporation. All rights reserved.