📄 functions.h
字号:
//-----------------------------------------------------------------------------
// Company: Basler Vision Technologies
// Section: Vision Components
// Project: 1394 Driver
// Subproject: BcamDrv
// <b> Visual SourceSafe Information:</b>
// $Archive: /Software/src/bcamdrv/functions.h $
// $Author: Moebius, V.$
// $Revision: 20$
// $Date: 24.06.2004 16:15:43$
//-----------------------------------------------------------------------------
/**
* \file functions.h
* \brief Interface to the kernel-mode driver.
*
* This file defines function codes for the Basler
* IEEE-1394 camera driver (BCAM). These codes are
* used to invoke the driver's functions.
*/
//-----------------------------------------------------------------------------
#if !defined(FUNCTIONS_H)
#define FUNCTIONS_H
#if defined(BCAM_DRIVER_BUILD)
#include <wdm.h>
#else
#include <basetyps.h>
#include <winnt.h>
#include <winioctl.h>
#endif
#include "classcode.h"
/**
* Typesafe version of standard macro
*/
#define _CTL_CODE( DeviceType, Function, Method, Access ) (\
(ULONG)(((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method) ) \
)
/*
* Explicitly specify structure member alignment, to become independent
* of any alignment that may be in effect when this file is included.
*/
#pragma pack(push, 4)
/* Function ordinal numbers, used to construct driver control codes */
enum _BCAM_FUNCTION_ORDINAL_NUMBERS
{
OrdInitCamera = 0x800,
OrdGetVideoFormatMask,
OrdGetVideoModeMask,
OrdGetFrameRateMask,
OrdSetVideoFormatModeFrameRate,
OrdGetCameraID,
OrdGetString,
OrdFmt7GetModeDescriptor,
OrdFmt7SetAOI,
OrdFmt7GetAOI,
OrdFmt7GetColorMode,
OrdFmt7SetColorMode,
OrdGetBandwidthInfo,
OrdGrabSingleFrame,
OrdGrabMultipleFrames,
OrdCameraControl,
OrdReceiveData,
OrdGetVersion,
OrdSetTestImageCSR,
OrdQueryDCSFeaturePresence,
OrdQueryDCSFeatureInq,
OrdSetDCSFeatureCSR,
OrdGetDCSFeatureCSR,
OrdGetDCSFeatureAbsValue,
OrdGetDCSFeatureAbsRange,
OrdAllocateResources,
OrdFreeResources,
OrdSetCameraBytesPerPacket,
OrdGetVideoFormatModeFrameRate,
OrdValidateCameraParameters,
OrdGetDriverVersionString,
OrdGetTestImageCSR,
OrdSetShadingCtrl,
OrdGetShadingCtrl,
OrdGetShadingInquiry,
OrdUploadShadingData,
OrdFlush,
OrdGetDcamVersion,
OrdGetBasicFuncInq,
OrdSetUserThreadPriority,
OrdSetQueueServerPriority,
OrdGetQueueServerPriority,
OrdGetAuthChallenge,
OrdAuthorize,
OrdGetNumMemoryChannels,
OrdGetCurrentMemoryChannel,
OrdLoadMemoryChannel,
OrdSaveMemoryChannel
};
/* Basic type definitions */
/// Camera unique identifier
typedef ULONGLONG CameraUniqueID;
/* Authorization challenge */
typedef UCHAR MD5Sum[16];
/** Rectangle --- used for AOI */
typedef struct _BCAM_RECT
{
ULONG X0, ///< Left, x-coordinate of top-left corner
Y0, ///< Top, y-coordinate of top-left corner
Xsize, ///< Width in pixels
Ysize; ///< Height in pixels
} BcamRect;
/** Flags denoting rectangle components */
#define BCAM_RECTCOMP_POSITION_X 0x1 ///< X position
#define BCAM_RECTCOMP_POSITION_Y 0x2 ///< Y position
#define BCAM_RECTCOMP_SIZE_X 0x4 ///< X size
#define BCAM_RECTCOMP_SIZE_Y 0x8 ///< Y size
#define BCAM_RECTCOMP_POSITION (BCAM_RECTCOMP_POSITION_X | BCAM_RECTCOMP_POSITION_Y) ///< both x and y psitions
#define BCAM_RECTCOMP_SIZE (BCAM_RECTCOMP_SIZE_X | BCAM_RECTCOMP_SIZE_Y) ///< both x and y sizes
#define BCAM_RECTCOMP_ALL (BCAM_RECTCOMP_POSITION | BCAM_RECTCOMP_SIZE) ///< entire rectangle
/** Minimum result buffer size for IOCTL_BCAM_GET_DRIVER_VERSION_STRING */
#define BCAM_MAXIMUM_VERSION_STRING_SIZE 20
/** These are the color modes, as defined by the Digital Camera Specification. */
typedef enum _DCS_COLOR_CODES
{
DCSColor_Mono8 = 0, ///< Y component has 8bit data
DCSColor_YUV8_4_1_1, ///< 4:1:1 YUV 8 format, each component has 8bit data
DCSColor_YUV8_4_2_2, ///< 4:2:2 YUV 8 format, each component has 8bit data
DCSColor_YUV8_4_4_4, ///< 4:4:4 YUV 8 format, each component has 8bit data
DCSColor_RGB8, ///< RGB 8 format, each component has 8bit data
DCSColor_Mono16, ///< Y component has 16bit unsigned data
DCSColor_RGB16, ///< RGB 16 format, each component has 16bit unsigned data
DCSColor_SMono16, ///< Y component has 16bit signed data
DCSColor_SRGB16, ///< RGB 16 format, each component has 16bit signed data
DCSColor_Raw8, ///< Raw data output of color filter sensor, 8bit data
DCSColor_Raw16, ///< Raw data output of color filter sensor, 16bit data
DCSColor_VendorSpecific0 = 128, ///< First of 128 vendor specific color codes
DCSColor_VendorSpecific1, ///< 2nd vendor specific color code
DCSColor_VendorSpecific2, ///< 3rd vendor specific color code
DCSColor_VendorSpecific3, ///< 4th vendor specific color code
DCSColor_VendorSpecific4, ///< 5th vendor specific color code
DCSColor_VendorSpecific5, ///< 6th vendor specific color code
DCSColor_VendorSpecific6, ///< 7th vendor specific color code
DCSColor_VendorSpecific7, ///< 8th vendor specific color code
DCSColor_VendorSpecific8, ///< 9th vendor specific color code
DCSColor_VendorSpecific9, ///< 10th vendor specific color code
DCSColor_VendorSpecific10, ///< 11th vendor specific color code
DCSColor_VendorSpecific11, ///< 12th vendor specific color code
DCSColor_VendorSpecific12, ///< 13th vendor specific color code
DCSColor_VendorSpecific13, ///< 14th vendor specific color code
DCSColor_VendorSpecific14, ///< 15th vendor specific color code
DCSColor_VendorSpecific15, ///< 16th vendor specific color code
DCSColor_VendorSpecific16, ///< 17th vendor specific color code
DCSColor_VendorSpecific17, ///< 18th vendor specific color code
DCSColor_VendorSpecific18, ///< 19th vendor specific color code
DCSColor_VendorSpecific19, ///< 20th vendor specific color code
DCSColor_VendorSpecific20, ///< 21th vendor specific color code
DCSColor_VendorSpecific21, ///< 22th vendor specific color code
DCSColor_VendorSpecific22, ///< 23th vendor specific color code
DCSColor_VendorSpecific23, ///< 24th vendor specific color code
DCSColor_VendorSpecific24, ///< 25th vendor specific color code
DCSColor_VendorSpecific25, ///< 26th vendor specific color code
DCSColor_VendorSpecific26, ///< 27th vendor specific color code
DCSColor_VendorSpecific27, ///< 28th vendor specific color code
DCSColor_VendorSpecific28, ///< 29th vendor specific color code
DCSColor_VendorSpecific29, ///< 30th vendor specific color code
DCSColor_VendorSpecific30, ///< 31th vendor specific color code
DCSColor_VendorSpecific31, ///< 32th vendor specific color code
DCSColor_VendorSpecific32, ///< 33th vendor specific color code
DCSColor_VendorSpecific33, ///< 34th vendor specific color code
DCSColor_VendorSpecific34, ///< 35th vendor specific color code
DCSColor_VendorSpecific35, ///< 36th vendor specific color code
DCSColor_VendorSpecific36, ///< 37th vendor specific color code
DCSColor_VendorSpecific37, ///< 38th vendor specific color code
DCSColor_VendorSpecific38, ///< 39th vendor specific color code
DCSColor_VendorSpecific39, ///< 40th vendor specific color code
DCSColor_VendorSpecific40, ///< 41th vendor specific color code
DCSColor_VendorSpecific41, ///< 42th vendor specific color code
DCSColor_VendorSpecific42, ///< 43th vendor specific color code
DCSColor_VendorSpecific43, ///< 44th vendor specific color code
DCSColor_VendorSpecific44, ///< 45th vendor specific color code
DCSColor_VendorSpecific45, ///< 46th vendor specific color code
DCSColor_VendorSpecific46, ///< 47th vendor specific color code
DCSColor_VendorSpecific47, ///< 48th vendor specific color code
DCSColor_VendorSpecific48, ///< 49th vendor specific color code
DCSColor_VendorSpecific49, ///< 50th vendor specific color code
DCSColor_VendorSpecific50, ///< 51th vendor specific color code
DCSColor_VendorSpecific51, ///< 52th vendor specific color code
DCSColor_VendorSpecific52, ///< 53th vendor specific color code
DCSColor_VendorSpecific53, ///< 54th vendor specific color code
DCSColor_VendorSpecific54, ///< 55th vendor specific color code
DCSColor_VendorSpecific55, ///< 56th vendor specific color code
DCSColor_VendorSpecific56, ///< 57th vendor specific color code
DCSColor_VendorSpecific57, ///< 58th vendor specific color code
DCSColor_VendorSpecific58, ///< 59th vendor specific color code
DCSColor_VendorSpecific59, ///< 60th vendor specific color code
DCSColor_VendorSpecific60, ///< 61th vendor specific color code
DCSColor_VendorSpecific61, ///< 62th vendor specific color code
DCSColor_VendorSpecific62, ///< 63th vendor specific color code
DCSColor_VendorSpecific63, ///< 64th vendor specific color code
DCSColor_VendorSpecific64, ///< 65th vendor specific color code
DCSColor_VendorSpecific65, ///< 66th vendor specific color code
DCSColor_VendorSpecific66, ///< 67th vendor specific color code
DCSColor_VendorSpecific67, ///< 68th vendor specific color code
DCSColor_VendorSpecific68, ///< 69th vendor specific color code
DCSColor_VendorSpecific69, ///< 70th vendor specific color code
DCSColor_VendorSpecific70, ///< 71th vendor specific color code
DCSColor_VendorSpecific71, ///< 72th vendor specific color code
DCSColor_VendorSpecific72, ///< 73th vendor specific color code
DCSColor_VendorSpecific73, ///< 74th vendor specific color code
DCSColor_VendorSpecific74, ///< 75th vendor specific color code
DCSColor_VendorSpecific75, ///< 76th vendor specific color code
DCSColor_VendorSpecific76, ///< 77th vendor specific color code
DCSColor_VendorSpecific77, ///< 78th vendor specific color code
DCSColor_VendorSpecific78, ///< 79th vendor specific color code
DCSColor_VendorSpecific79, ///< 80th vendor specific color code
DCSColor_VendorSpecific80, ///< 81th vendor specific color code
DCSColor_VendorSpecific81, ///< 82th vendor specific color code
DCSColor_VendorSpecific82, ///< 83th vendor specific color code
DCSColor_VendorSpecific83, ///< 84th vendor specific color code
DCSColor_VendorSpecific84, ///< 85th vendor specific color code
DCSColor_VendorSpecific85, ///< 86th vendor specific color code
DCSColor_VendorSpecific86, ///< 87th vendor specific color code
DCSColor_VendorSpecific87, ///< 88th vendor specific color code
DCSColor_VendorSpecific88, ///< 89th vendor specific color code
DCSColor_VendorSpecific89, ///< 90th vendor specific color code
DCSColor_VendorSpecific90, ///< 91th vendor specific color code
DCSColor_VendorSpecific91, ///< 92th vendor specific color code
DCSColor_VendorSpecific92, ///< 93th vendor specific color code
DCSColor_VendorSpecific93, ///< 94th vendor specific color code
DCSColor_VendorSpecific94, ///< 95th vendor specific color code
DCSColor_VendorSpecific95, ///< 96th vendor specific color code
DCSColor_VendorSpecific96, ///< 97th vendor specific color code
DCSColor_VendorSpecific97, ///< 98th vendor specific color code
DCSColor_VendorSpecific98, ///< 99th vendor specific color code
DCSColor_VendorSpecific99, ///< 100th vendor specific color code
DCSColor_VendorSpecific100, ///< 101th vendor specific color code
DCSColor_VendorSpecific101, ///< 102th vendor specific color code
DCSColor_VendorSpecific102, ///< 103th vendor specific color code
DCSColor_VendorSpecific103, ///< 104th vendor specific color code
DCSColor_VendorSpecific104, ///< 105th vendor specific color code
DCSColor_VendorSpecific105, ///< 106th vendor specific color code
DCSColor_VendorSpecific106, ///< 107th vendor specific color code
DCSColor_VendorSpecific107, ///< 108th vendor specific color code
DCSColor_VendorSpecific108, ///< 109th vendor specific color code
DCSColor_VendorSpecific109, ///< 110th vendor specific color code
DCSColor_VendorSpecific110, ///< 111th vendor specific color code
DCSColor_VendorSpecific111, ///< 112th vendor specific color code
DCSColor_VendorSpecific112, ///< 113th vendor specific color code
DCSColor_VendorSpecific113, ///< 114th vendor specific color code
DCSColor_VendorSpecific114, ///< 115th vendor specific color code
DCSColor_VendorSpecific115, ///< 116th vendor specific color code
DCSColor_VendorSpecific116, ///< 117th vendor specific color code
DCSColor_VendorSpecific117, ///< 118th vendor specific color code
DCSColor_VendorSpecific118, ///< 119th vendor specific color code
DCSColor_VendorSpecific119, ///< 120th vendor specific color code
DCSColor_VendorSpecific120, ///< 121th vendor specific color code
DCSColor_VendorSpecific121, ///< 122th vendor specific color code
DCSColor_VendorSpecific122, ///< 123th vendor specific color code
DCSColor_VendorSpecific123, ///< 124th vendor specific color code
DCSColor_VendorSpecific124, ///< 125th vendor specific color code
DCSColor_VendorSpecific125, ///< 126th vendor specific color code
DCSColor_VendorSpecific126, ///< 127th vendor specific color code
DCSColor_VendorSpecific127 = 255,///< Last of 128 vendor specific color codes
NumDCSColorCodes
} DCSColorCode;
/** Isochronous speed encoding */
typedef enum _BCAM_ISO_SPEED
{
IsoSpeed_Unknown,
IsoSpeed_100, ///< 100Mbit/s
IsoSpeed_200, ///< 200Mbit/s
IsoSpeed_400, ///< 400Mbit/s
IsoSpeed_800, ///< 800Mbit/s
IsoSpeed_1600, ///< 1600Mbit/s
IsoSpeed_3200 ///< 3200Mbit/s
} BcamIsoSpeed;
/// These are the test image modes
typedef enum _TEST_IMAGE_MODE
{
TestImage_Disabled, ///< Test image disabled
TestImage_1, ///< Test image 1 active
TestImage_2, ///< Test image 2 active
TestImage_3, ///< Test image 3 active
TestImage_4, ///< Test image 4 active
TestImage_5, ///< Test image 5 active
TestImage_6, ///< Test image 6 active
TestImage_7 ///< Test image 7 active
} ImageOnMode;
/// Test image feature
typedef struct _BCAM_TEST_IMAGE
{
ULONG : 13;
ULONG ImageOn : 3; ///< Test image mode
ULONG : 1;
ULONG ImageInq7 : 1; ///< Presence of test image 7
ULONG ImageInq6 : 1; ///< Presence of test image 6
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -