VC_CALLBACK

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.