Jungo WinDriver  
Official Documentation
wd_kp.h
Go to the documentation of this file.
1/* @JUNGO_COPYRIGHT@ */
2
3#ifndef _WD_KP_H_
4#define _WD_KP_H_
5
6#ifndef __KERNEL__
7 #define __KERNEL__
8#endif
9
10#ifndef __KERPLUG__
11 #define __KERPLUG__
12#endif
13
14#include "windrvr.h"
15
16#ifdef __cplusplus
17 extern "C" {
18#endif /* __cplusplus */
19
21typedef void (__cdecl *KP_FUNC_CLOSE)(PVOID pDrvContext);
23typedef void (__cdecl *KP_FUNC_CALL)(PVOID pDrvContext,
24 WD_KERNEL_PLUGIN_CALL *kpCall);
28typedef BOOL (__cdecl *KP_FUNC_INT_ENABLE)(PVOID pDrvContext,
29 WD_KERNEL_PLUGIN_CALL *kpCall, PVOID *ppIntContext);
31typedef void (__cdecl *KP_FUNC_INT_DISABLE)(PVOID pIntContext);
33typedef BOOL (__cdecl *KP_FUNC_INT_AT_IRQL)(PVOID pIntContext,
34 BOOL *pfIsMyInterrupt);
37typedef DWORD (__cdecl *KP_FUNC_INT_AT_DPC)(PVOID pIntContext, DWORD dwCount);
39typedef BOOL (__cdecl *KP_FUNC_INT_AT_IRQL_MSI)(PVOID pIntContext,
40 ULONG dwLastMessage, DWORD dwReserved);
43typedef DWORD (__cdecl *KP_FUNC_INT_AT_DPC_MSI)(PVOID pIntContext,
44 DWORD dwCount, ULONG dwLastMessage, DWORD dwReserved);
46typedef BOOL (__cdecl *KP_FUNC_EVENT)(PVOID pDrvContext, WD_EVENT *wd_event);
47
48typedef struct
49{
60
63typedef BOOL (__cdecl *KP_FUNC_OPEN)(KP_OPEN_CALL *kpOpenCall, HANDLE hWD,
64 PVOID pOpenData, PVOID *ppDrvContext);
65
66typedef struct
67{
68 DWORD dwVerWD;
69 CHAR cDriverName[WD_MAX_KP_NAME_LENGTH];
74} KP_INIT;
75
77BOOL __cdecl KP_Init(KP_INIT *kpInit);
78
79#ifdef __cplusplus
80 }
81#endif /* __cplusplus */
82
83#endif /* _WD_KP_H_ */
84
DWORD dwVerWD
version of the WinDriver Kernel PlugIn library
Definition: wd_kp.h:68
KP_FUNC_OPEN funcOpen
returns the KP_Open function
Definition: wd_kp.h:71
KP_FUNC_OPEN funcOpen_32_64
returns the KP_Open function for 32 bit app with 64 bit KP.
Definition: wd_kp.h:72
Definition: wd_kp.h:67
KP_FUNC_EVENT funcEvent
Definition: wd_kp.h:58
KP_FUNC_CLOSE funcClose
Definition: wd_kp.h:50
KP_FUNC_INT_AT_IRQL funcIntAtIrql
Definition: wd_kp.h:54
KP_FUNC_INT_AT_DPC_MSI funcIntAtDpcMSI
Definition: wd_kp.h:57
KP_FUNC_INT_ENABLE funcIntEnable
Definition: wd_kp.h:52
KP_FUNC_INT_AT_IRQL_MSI funcIntAtIrqlMSI
Definition: wd_kp.h:56
KP_FUNC_INT_AT_DPC funcIntAtDpc
Definition: wd_kp.h:55
KP_FUNC_CALL funcCall
Definition: wd_kp.h:51
KP_FUNC_INT_DISABLE funcIntDisable
Definition: wd_kp.h:53
void(__cdecl * KP_FUNC_CALL)(PVOID pDrvContext, WD_KERNEL_PLUGIN_CALL *kpCall)
Called when WD_KernelPlugInCall() is called.
Definition: wd_kp.h:23
BOOL(__cdecl * KP_FUNC_EVENT)(PVOID pDrvContext, WD_EVENT *wd_event)
returns TRUE if user need notification
Definition: wd_kp.h:46
void(__cdecl * KP_FUNC_INT_DISABLE)(PVOID pIntContext)
Called when WD_IntDisable() is called.
Definition: wd_kp.h:31
BOOL(__cdecl * KP_FUNC_INT_AT_IRQL_MSI)(PVOID pIntContext, ULONG dwLastMessage, DWORD dwReserved)
Returns TRUE if needs DPC.
Definition: wd_kp.h:39
BOOL(__cdecl * KP_FUNC_INT_ENABLE)(PVOID pDrvContext, WD_KERNEL_PLUGIN_CALL *kpCall, PVOID *ppIntContext)
Called when WD_IntEnable() is called, with a kernel plugin handler specified the pIntContext will be ...
Definition: wd_kp.h:28
void(__cdecl * KP_FUNC_CLOSE)(PVOID pDrvContext)
Called when WD_KernelPlugInClose() is called.
Definition: wd_kp.h:21
DWORD(__cdecl * KP_FUNC_INT_AT_DPC)(PVOID pIntContext, DWORD dwCount)
Returns the number of times to notify user-mode (i.e.
Definition: wd_kp.h:37
BOOL __cdecl KP_Init(KP_INIT *kpInit)
You must define a KP_Init() function to link to the device driver.
Definition: kp_pci.c:65
BOOL(__cdecl * KP_FUNC_OPEN)(KP_OPEN_CALL *kpOpenCall, HANDLE hWD, PVOID pOpenData, PVOID *ppDrvContext)
Called when WD_KernelPlugInOpen() is called.
Definition: wd_kp.h:63
DWORD(__cdecl * KP_FUNC_INT_AT_DPC_MSI)(PVOID pIntContext, DWORD dwCount, ULONG dwLastMessage, DWORD dwReserved)
Returns the number of times to notify user-mode (i.e.
Definition: wd_kp.h:43
BOOL(__cdecl * KP_FUNC_INT_AT_IRQL)(PVOID pIntContext, BOOL *pfIsMyInterrupt)
Returns TRUE if needs DPC.
Definition: wd_kp.h:33
#define WD_MAX_KP_NAME_LENGTH
Definition: windrvr.h:60