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 
21 typedef void (__cdecl *KP_FUNC_CLOSE)(PVOID pDrvContext);
23 typedef void (__cdecl *KP_FUNC_CALL)(PVOID pDrvContext,
24  WD_KERNEL_PLUGIN_CALL *kpCall);
28 typedef BOOL (__cdecl *KP_FUNC_INT_ENABLE)(PVOID pDrvContext,
29  WD_KERNEL_PLUGIN_CALL *kpCall, PVOID *ppIntContext);
31 typedef void (__cdecl *KP_FUNC_INT_DISABLE)(PVOID pIntContext);
33 typedef BOOL (__cdecl *KP_FUNC_INT_AT_IRQL)(PVOID pIntContext,
34  BOOL *pfIsMyInterrupt);
37 typedef DWORD (__cdecl *KP_FUNC_INT_AT_DPC)(PVOID pIntContext, DWORD dwCount);
39 typedef BOOL (__cdecl *KP_FUNC_INT_AT_IRQL_MSI)(PVOID pIntContext,
40  ULONG dwLastMessage, DWORD dwReserved);
43 typedef DWORD (__cdecl *KP_FUNC_INT_AT_DPC_MSI)(PVOID pIntContext,
44  DWORD dwCount, ULONG dwLastMessage, DWORD dwReserved);
46 typedef BOOL (__cdecl *KP_FUNC_EVENT)(PVOID pDrvContext, WD_EVENT *wd_event);
47 
48 typedef struct
49 {
59 } KP_OPEN_CALL;
60 
63 typedef BOOL (__cdecl *KP_FUNC_OPEN)(KP_OPEN_CALL *kpOpenCall, HANDLE hWD,
64  PVOID pOpenData, PVOID *ppDrvContext);
65 
66 typedef struct
67 {
68  DWORD dwVerWD;
69  CHAR cDriverName[WD_MAX_KP_NAME_LENGTH];
74 } KP_INIT;
75 
77 BOOL __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