next up previous contents
Next: A. WinDriver Status Codes Up: 6. Kernel PlugIn User-Mode Previous: 6.3 WD_KernelPlugInCall()   Contents


6.4 WD_IntEnable()


PURPOSE

$\bullet$Enables interrupt handling in the Kernel Plugin.


PROTOTYPE

DWORD WD_IntEnable(HANDLE hWD, WD_INTERRUPT *pInterrupt);


PARAMETERS

Name Type Input/Output
$\bullet$hWD HANDLE Input
$\bullet$pInterrupt WD_INTERRUPT*  
$\gg$kpCall WD_KERNEL_PLUGIN_CALL  
$\diamond$hKernelPlugIn HANDLE Input
$\diamond$dwMessage DWORD N/A
$\diamond$pData PVOID Input
$\diamond$dwResult DWORD N/A


DESCRIPTION

Name Description
hWD Handle to WinDriver
pInterrupt Pointer to an interrupt information structure:
$\bullet$ kpCall Kernel PlugIn message structure:
$\gg$ hKernelPlugIn Handle to the Kernel PlugIn. If zero, no Kernel PlugIn interrupt handler is installed
$\gg$ pData Pointer to data to pass to the KP_IntEnable() callback in the Kernel PlugIn


RETURN VALUE

Returns WD_STATUS_SUCCESS (0) on success, or an appropriate error code otherwise [A].


REMARKS


EXAMPLE

WD_INTERRUPT Intrp;
BZERO(Intrp); 
Intrp.hInterrupt = hInterrupt; /* From WD_CardRegister() */
/* From WD_KernelPlugInOpen(): */
Intrp.kpCall.hKernelPlugIn = hKernelPlugIn; 

WD_IntEnable(hWD, &Intrp);

if (!Intrp.fEnableOk)
    printf ("failed enabling interrupt\n");