📄 functions.h
字号:
VideoMode, ///< Specifies the video mode
FrameRate; ///< Specifies the frame rate
} ArgSetVideoFormatModeFrameRate;
/**
* \brief IOCTL_BCAM_GET_CAMERA_ID
* Get the camera's unique ID.
* This function does not have any arguments.
* \return ResGetCameraID It returns a 64-bit camera ID.
*/
#define IOCTL_BCAM_GET_CAMERA_ID \
_CTL_CODE(FILE_DEVICE_BCAM_1394, OrdGetCameraID, METHOD_BUFFERED, FILE_ANY_ACCESS)
/// Result of the GetCameraID function
typedef struct _BCAM_GET_CAMERA_ID_OUT
{
CameraUniqueID Id; ///< Specifies the camera unique identifier
} ResGetCameraID;
/**
* \brief IOCTL_BCAM_GET_STRING
* Query camera for string data.
* \param arg : ArgGetString a string identifier
* \return PCHAR Pointer to the filled buffer
*/
#define IOCTL_BCAM_GET_STRING \
_CTL_CODE(FILE_DEVICE_BCAM_1394, OrdGetString, METHOD_BUFFERED, FILE_ANY_ACCESS)
/// Argument for the GetString function
typedef struct _BCAM_GET_STRING_IN
{
BcamStringID Id; ///< Specifies the string to get.
} ArgGetString;
/**
* \brief IOCTL_BCAM_FMT7_GET_MODE_DESCRIPTOR
* Get data describing a particular video mode in format 7.
*
* If the camera does not support
* format 7, these operations will fail.
*
* \param arg : ArgFmt7GetModeDescriptor a mode number
* \return #ResFmt7GetModeDescriptor a mode descriptor.
*/
#define IOCTL_BCAM_FMT7_GET_MODE_DESCRIPTOR \
_CTL_CODE(FILE_DEVICE_BCAM_1394, OrdFmt7GetModeDescriptor, METHOD_BUFFERED, FILE_ANY_ACCESS)
/// Argument for the Fmt7GetModeDescriptor function
typedef struct _BCAM_FMT7_GET_MODE_DESCRIPTOR_IN
{
ULONG VideoMode; ///< Specifies the video mode
} ArgFmt7GetModeDescriptor;
/** \brief Result of the Fmt7GetModeDescriptor function */
typedef BcamVideoFormat7Descriptor ResFmt7GetModeDescriptor;
/**
* \brief IOCTL_BCAM_FMT7_SET_AOI
* Set AOI as described by arguments.
* \param arg : ArgFmt7SetAOI the aoi to set
*/
#define IOCTL_BCAM_FMT7_SET_AOI \
_CTL_CODE(FILE_DEVICE_BCAM_1394, OrdFmt7SetAOI, METHOD_BUFFERED, FILE_ANY_ACCESS)
/// Argument for the Fmt7SetAOI function
typedef struct _BCAM_FMT7_SET_AOI_IN
{
ULONG VideoMode; ///< Specifies the video mode
BcamRect AOI; ///< Specifies the area of interest
ULONG Mask; ///< Bitmask for components to set (position, size or both)
} ArgFmt7SetAOI;
/**
* \brief IOCTL_BCAM_FMT7_GET_AOI
* Get AOI currently set.
* \param arg : ArgFmt7GetAOI is mode number.
* \return #ResFmt7GetAOI is a AOI descriptor.
*/
#define IOCTL_BCAM_FMT7_GET_AOI \
_CTL_CODE(FILE_DEVICE_BCAM_1394, OrdFmt7GetAOI, METHOD_BUFFERED, FILE_ANY_ACCESS)
/// Argument for the Fmt7GetAOI function
typedef struct _BCAM_FMT7_GET_AOI_IN
{
ULONG VideoMode; ///< Specifies the video mode
} ArgFmt7GetAOI;
/// Parameter of the Fmt7GetAOI function
typedef BcamRect ResFmt7GetAOI;
/**
* \brief IOCTL_BCAM_FMT7_GET_COLOR_MODE
* Get the color code currently set.
* \param arg : ArgFmt7GetColorMode the mode number
* \return ResFmt7GetColorMode the mode currently set
*/
#define IOCTL_BCAM_FMT7_GET_COLOR_MODE \
_CTL_CODE(FILE_DEVICE_BCAM_1394, OrdFmt7GetColorMode, METHOD_BUFFERED, FILE_ANY_ACCESS)
/// Argument for the Fmt7GetColorMode function
typedef struct _BCAM_FMT7_GET_COLOR_MODE_IN
{
ULONG VideoMode; ///< Specifies the video mode
} ArgFmt7GetColorMode;
/// Result of the Fmt7GetColorMode function
typedef struct _BCAM_FMT7_GET_COLOR_MODE_OUT
{
DCSColorCode ColorMode; ///< Specifies the image type
} ResFmt7GetColorMode;
/**
* \brief IOCTL_BCAM_FMT7_SET_COLOR_MODE
* Set the color mode for a particular video mode (format 7).
* \param arg : ArgFmt7SetColorMode the image type
*/
#define IOCTL_BCAM_FMT7_SET_COLOR_MODE \
_CTL_CODE(FILE_DEVICE_BCAM_1394, OrdFmt7SetColorMode, METHOD_BUFFERED, FILE_ANY_ACCESS)
/// Argument of the Fmt7SetColorMode function
typedef struct _BCAM_FMT7_SET_COLOR_MODE_IN
{
ULONG VideoMode; ///< Specifies the video mode
DCSColorCode ColorMode; ///< Specifies the image type
} ArgFmt7SetColorMode;
/**
* \brief IOCTL_BCAM_GET_BANDWIDTH_INFO
* Query camera for bandwidth-related data (format 7).
* \param arg : ArgGetBandwidthInfo
* \return #ResGetBandwidthInfo
*/
#define IOCTL_BCAM_GET_BANDWIDTH_INFO \
_CTL_CODE(FILE_DEVICE_BCAM_1394, OrdGetBandwidthInfo, METHOD_BUFFERED, FILE_ANY_ACCESS)
/// Argument for the GetBandwidthInfo function
typedef struct _BCAM_GET_BANDWIDTH_INFO_IN
{
ULONG VideoMode; ///< Specifies the video mode
} ArgGetBandwidthInfo;
/// Result of the GetBandwidthInfo function
typedef BcamBwDesc ResGetBandwidthInfo;
/**
* \brief IOCTL_BCAM_CAMERA_CONTROL
* Start/stop image aquisition.
* \param arg : ArgCameraControl
*/
#define IOCTL_BCAM_CAMERA_CONTROL \
_CTL_CODE(FILE_DEVICE_BCAM_1394, OrdCameraControl, METHOD_BUFFERED, FILE_ANY_ACCESS)
/// Argument for the CameraControl function.
typedef struct _BCAM_CAMERA_CONTROL_IN
{
BcamCameraCommand Cmd; ///< Specifies the camera command
ULONG nFrames; ///< Specifies the number of images to grab in case of CamCmd_MultiGrab
} ArgCameraControl;
/**
* \brief IOCTL_BCAM_RECEIVE_DATA
* Receive data sent by camera and place it in the buffer passed with the request.
* \param arg : PVOID; Pointer to the image buffer
*/
#define IOCTL_BCAM_RECEIVE_DATA \
_CTL_CODE(FILE_DEVICE_BCAM_1394, OrdReceiveData, METHOD_IN_DIRECT, FILE_ANY_ACCESS)
/**
* \brief IOCTL_BCAM_QUERY_DCS_FEATURE_PRESENCE
* Obtain information about the feature presence for current format/mode combination.
* \return ResQueryDCSFeaturePresence the feature descriptor
*/
#define IOCTL_BCAM_QUERY_DCS_FEATURE_PRESENCE \
_CTL_CODE(FILE_DEVICE_BCAM_1394, OrdQueryDCSFeaturePresence, METHOD_BUFFERED, FILE_ANY_ACCESS)
/// Result of the QueryDCSFeaturePresence
typedef struct _BCAM_QUERY_DCS_FEATURE_PRESENCE_OUT
{
ULONGLONG FeatureFlags; ///< Mask with the supported features.
} ResQueryDCSFeaturePresence;
/**
* \brief IOCTL_BCAM_QUERY_DCS_FEATURE_INQ
* Obtain information about a feature.
* \param arg : ArgQueryDCSFeatureInq; the feature
* \return #ResQueryDCSFeatureInq the feature descriptor
*/
#define IOCTL_BCAM_QUERY_DCS_FEATURE_INQ \
_CTL_CODE(FILE_DEVICE_BCAM_1394, OrdQueryDCSFeatureInq, METHOD_BUFFERED, FILE_ANY_ACCESS)
/// Argument to the QueryDCSFeatureInq function
typedef struct _BCAM_QUERY_DCS_FEATURE_INQ_IN
{
BcamFeatureID FeatId; ///< The feature identifier
} ArgQueryDCSFeatureInq;
/// Result for the QueryDCSFeatureInq function
typedef BcamFeatureInqDescriptor ResQueryDCSFeatureInq;
/**
* \brief IOCTL_BCAM_SET_DCS_FEATURE_CSR
* Set a feature's value.
* \param arg : ArgSetDCSFeatureCSR the feature descriptor
*/
#define IOCTL_BCAM_SET_DCS_FEATURE_CSR \
_CTL_CODE(FILE_DEVICE_BCAM_1394, OrdSetDCSFeatureCSR, METHOD_BUFFERED, FILE_ANY_ACCESS)
/// Argument to the SetDCSFeatureCSR function
typedef struct _BCAM_SET_DCS_FEATURE_CSR_IN
{
BcamFeatureID FeatId; ///< Specifies the feature
BcamFeatureCSRDescriptor FeatCSRDescriptor; ///< The feature descriptor
ULONG Mask; ///< Bitmask specifying changes to apply
} ArgSetDCSFeatureCSR;
/**
* \brief IOCTL_BCAM_GET_DCS_FEATURE_CSR
* Get a feature's value.
* \param arg : ArgGetDCSFeatureCSR
* \return #ResGetDCSFeatureCSR
*/
#define IOCTL_BCAM_GET_DCS_FEATURE_CSR \
_CTL_CODE(FILE_DEVICE_BCAM_1394, OrdGetDCSFeatureCSR, METHOD_BUFFERED, FILE_ANY_ACCESS)
/// Argument to the GetDCSFeatureCSR function
typedef struct _BCAM_GET_DCS_FEATURE_CSR_OUT
{
BcamFeatureID FeatId; ///< Specifies the feature
BOOLEAN Reserved; ///< This argument is currently unused.
} ArgGetDCSFeatureCSR;
/// Result of the GetDCSFeatureCSR function
typedef BcamFeatureCSRDescriptor ResGetDCSFeatureCSR;
/**
* \brief IOCTL_BCAM_ALLOCATE_RESOURCES
* Allocate isochronous resources (channel, bandwidth...)
* \param arg : ArgAllocateResources;
* \return ResAllocateResources
*/
#define IOCTL_BCAM_ALLOCATE_RESOURCES \
_CTL_CODE(FILE_DEVICE_BCAM_1394, OrdAllocateResources, METHOD_BUFFERED, FILE_ANY_ACCESS)
/// Argument to the AllocateResources function
typedef struct _BCAM_ALLOCATE_RESOURCES_IN
{
ULONG nBytesPerPacket; ///< Packet size in bytes
ULONG nNumberOfBuffers; ///< Number of Buffers
ULONG nMaxBufferSize; ///< Maximum buffer size in bytes
} ArgAllocateResources;
/// Result of the AllocateResource function
typedef struct _BCAM_ALLOCATE_RESOURCES_OUT
{
ULONG Channel; ///< Isochronous channnel allocated
ULONG nBytesPerPacketRemain; ///< Unused bandwidth remaining after allocation
BcamIsoSpeed Speed; ///< Isochronous transmission speed for device
} ResAllocateResources;
/**
* \brief IOCTL_BCAM_FREE_RESOURCES
* Free isochronous resources
*/
#define IOCTL_BCAM_FREE_RESOURCES \
_CTL_CODE(FILE_DEVICE_BCAM_1394, OrdFreeResources, METHOD_NEITHER, FILE_ANY_ACCESS)
/**
* \brief IOCTL_BCAM_SET_CAMERA_BYTES_PER_PACKET
* Set bytes-per-packet value for camera (video format 7)
* \param arg ArgSetCameraBytesPerPacket;
*/
#define IOCTL_BCAM_SET_CAMERA_BYTES_PER_PACKET \
_CTL_CODE(FILE_DEVICE_BCAM_1394, OrdSetCameraBytesPerPacket, METHOD_BUFFERED, FILE_ANY_ACCESS)
/// Argument for the SetCameraBytesPerPacket function
typedef struct _BCAM_SET_CAMERA_BYTES_PER_PACKET_IN
{
ULONG VideoMode, ///< The video mode of format 7
nBytesPerPacket; ///< The packet size in bytes.
} ArgSetCameraBytesPerPacket;
/**
* \brief IOCTL_BCAM_GET_VIDEO_FORMAT_MODE_FRAME_RATE
* Get current video format, mode and frame rate.
* \return ResGetVideoFormatModeFrameRate If video format is 7, * returns ~0 for frame rate.
*/
#define IOCTL_BCAM_GET_VIDEO_FORMAT_MODE_FRAME_RATE \
_CTL_CODE(FILE_DEVICE_BCAM_1394, OrdGetVideoFormatModeFrameRate, METHOD_BUFFERED, FILE_ANY_ACCESS)
/// Result of the GetVideoFormatModeFrameRate function.
typedef struct _BCAM_GET_VIDEO_FORMAT_MODE_FRAME_RATE_OUT
{
ULONG VideoFormat, ///< The video format
VideoMode, ///< The video mode
FrameRate; ///< The frame rate
} ResGetVideoFormatModeFrameRate;
/**
* \brief IOCTL_BCAM_VALIDATE_CAMERA_PARAMETERS
* Check parameter set currently programmed into camera for consistency.
* \return None
*/
#define IOCTL_BCAM_VALIDATE_CAMERA_PARAMETERS \
_CTL_CODE(FILE_DEVICE_BCAM_1394, OrdValidateCameraParameters, METHOD_NEITHER, FILE_ANY_ACCESS)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -