IOCTL_VCR_AVCCMD (Windows CE 5.0)
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