VC_InstallDriver
LRESULT
VC_InstallDriver(
PVC_PROFILE_INFO pProfile,
PPROFILE_CALLBACK pCallback,
PVOID pContext
);
The VC_InstallDriver function installs a kernel-mode driver and allows
modification of configuration parameters.
Parameters
-
pProfile
-
Address of a VC_PROFILE_INFO structure returned by VC_OpenProfileAccess,
containing the kernel-mode driver’s name.
-
pCallback
-
Pointer to a driver-supplied function that is called before the kernel-mode
driver is reloaded. Can be NULL.
The function should return TRUE if the installation should continue, or FALSE
if the installation should be terminated. It uses the following prototype
definition:
BOOL pCallback (PVOID pContext);
-
pContext
-
Pointer to a driver-defined structure that is passed as input to the function
pointed to by pCallback. Can be NULL.
Return Value
Returns one the following values.
Value
|
Definition
|
DRVCNF_OK
|
The driver is correctly loaded and started. System restart is not required.
|
DRVCNF_CANCEL
|
An error occurred.
|
Comments
Under Windows NT, kernel-mode drivers are considered to be services under the
control of the Service Control Manager. The VC_InstallDriver function
establishes a kernel-mode driver as a service by performing the following
operations, in order:
-
Calling OpenSCManager to create a connection to the local Service
Control Manager. OpenSCManager is called with a desired access type of
SC_MANAGER_ALL_ACCESS, which requires Administrators privilege. (OpenSCManager
is described in the Win32 SDK.)
-
Calling CreateService to create a kernel-mode driver service and obtain
a service handle. The function sets the service’s start type to
SERVICE_DEMAND_START, so it will not automatically reload when the system is
restarted. (CreateService is described in the Win32 SDK.)
-
Unloading the kernel-mode driver, if it is loaded.
-
Calling the driver-supplied function specified by the pCallback
parameter. Generally, drivers use this function to modify configuration
parameters in the registry, using VC_WriteProfile.
-
Reloading and restarting the kernel-mode driver, setting its start type to
SERVICE_SYSTEM_START, so it will automatically reload and restart when the
system is restarted.
A result of calling CreateService is the creation of a driver subkey
under the \Services registry key. The path to the subkey is HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DriverName,
where DriverName is the driver name specified as input to VC_OpenProfileAccess.
Typically, a user-mode video capture driver calls VC_InstallDriver when
its DriverProc function receives a DRV_CONFIGURE
message.