typedef struct _VC_CALLBACK {
BOOLEAN (*DeviceOpenFunc)(PDEVICE_INFO);
BOOLEAN (*DeviceCloseFunc)(PDEVICE_INFO);
BOOLEAN (*ConfigFormatFunc)(PDEVICE_INFO, PCONFIG_INFO);
BOOLEAN (*ConfigDisplayFunc)(PDEVICE_INFO, PCONFIG_INFO);
BOOLEAN (*ConfigSourceFunc)(PDEVICE_INFO, PCONFIG_INFO);
DWORD (*GetOverlayModeFunc) (PDEVICE_INFO);
BOOLEAN (*SetKeyRGBFunc)(PDEVICE_INFO, PRGBQUAD);
BOOLEAN (*SetKeyPalIdxFunc)(PDEVICE_INFO, ULONG);
BOOLEAN (*SetOverlayRectsFunc)(PDEVICE_INFO, POVERLAY_RECTS);
BOOLEAN (*SetOverlayOffsetFunc)(PDEVICE_INFO, PRECT);
ULONG (*GetKeyColourFunc)(PDEVICE_INFO);
BOOLEAN (*CaptureFunc)(PDEVICE_INFO, BOOL);
BOOLEAN (*OverlayFunc)(PDEVICE_INFO, BOOL);
BOOLEAN (*StreamInitFunc)(PDEVICE_INFO, ULONG);
BOOLEAN (*StreamFiniFunc)(PDEVICE_INFO);
BOOLEAN (*StreamStartFunc)(PDEVICE_INFO);
BOOLEAN (*StreamStopFunc)(PDEVICE_INFO);
ULONG (*StreamGetPositionFunc)(PDEVICE_INFO);
BOOLEAN (*InterruptAcknowledge)(PDEVICE_INFO);
ULONG (*CaptureService)(PDEVICE_INFO, PUCHAR, PULONG, ULONG);
BOOLEAN (*DrawFrameFunc)(PDEVICE_INFO, PDRAWBUFFER);
BOOLEAN (*CleanupFunc)(PDEVICE_INFO);
} VC_CALLBACK, * PVC_CALLBACK;
The VC_CALLBACK structure is a dispatch table used by VCKernel.lib to call functions provided by kernel-mode video capture drivers. The structure is defined in vckernel.h.
Members
DeviceOpenFunc
Pointer to a kernel-mode video capture driver’s DeviceOpenFunc function.
DeviceCloseFunc
Pointer to a kernel-mode video capture driver’s DeviceCloseFunc function.
ConfigFormatFunc
Pointer to a kernel-mode video capture driver’s ConfigFormatFunc function.
ConfigDisplayFunc
Pointer to a kernel-mode video capture driver’s ConfigDisplayFunc function.
ConfigSourceFunc
Pointer to a kernel-mode video capture driver’s ConfigSourceFunc function.
GetOverlayModeFunc
Pointer to a kernel-mode video capture driver’s GetOverlayModeFunc function.
SetKeyRGBFunc
Pointer to a kernel-mode video capture driver’s SetKeyRGBFunc function.
SetKeyPalIdxFunc
Pointer to a kernel-mode video capture driver’s SetKeyPalIdxFunc function.
SetOverlayRectsFunc
Pointer to a kernel-mode video capture driver’s SetOverlayRectsFunc function.
SetOverlayOffsetFunc
Pointer to a kernel-mode video capture driver’s SetOverlayOffsetFunc function.
GetKeyColourFunc
Pointer to a kernel-mode video capture driver’s GetKeyColourFunc function.
CaptureFunc
Pointer to a kernel-mode video capture driver’s CaptureFunc function.
OverlayFunc
Pointer to a kernel-mode video capture driver’s OverlayFunc function.
StreamInitFunc
Pointer to a kernel-mode video capture driver’s StreamInitFunc function.
StreamFiniFunc
Pointer to a kernel-mode video capture driver’s StreamFiniFunc function.
StreamStartFunc
Pointer to a kernel-mode video capture driver’s StreamStartFunc function.
StreamStopFunc
Pointer to a kernel-mode video capture driver’s StreamStopFunc function.
StreamGetPositionFunc
Pointer to a kernel-mode video capture driver’s StreamGetPositionFunc function.
InterruptAcknowledge
Pointer to a kernel-mode video capture driver’s InterruptAcknowledge function.
CaptureService
Pointer to a kernel-mode video capture driver’s CaptureService function.
DrawFrameFunc
Pointer to a kernel-mode video capture driver’s DrawFrameFunc function.
CleanupFunc
Pointer to a kernel-mode video capture driver’s CleanupFunc function.
Comments
A kernel-mode video capture driver using VCKernel.lib is responsible for filling in VCKernel.lib’s VC_CALLBACK structure. The driver obtains the structure’s address by calling VC_GetCallbackTable. The driver should obtain the structure’s address and fill in the table from within its DriverEntry function, before hardware initialization is attempted.