基本信息
源码名称:windriver10.21 PCI kernel驱动程序例程
源码大小:12.00M
文件格式:.zip
开发语言:C/C++
更新时间:2025-12-13
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):78630559
本次赞助数额为: 1 元×
微信扫码支付:1 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
windriver10.21 PCI kernel驱动程序例 win7下可用
/* KP_KPZ0_Call is called when WD_KernelPlugInCall() is called from the user mode */
void __cdecl KP_KPZ0_Call(PVOID pDrvContext, WD_KERNEL_PLUGIN_CALL *kpCall,
BOOL fIsKernelMode)
{
KP_KPZ0_Trace("KP_KPZ0_Call entered. Message: 0x%lx\n", kpCall->dwMessage);
kpCall->dwResult = KP_KPZ0_STATUS_OK;
switch (kpCall->dwMessage)
{
case KP_KPZ0_MSG_VERSION: /* Get the version of the Kernel PlugIn driver */
{
DWORD dwVer = 100;
KP_KPZ0_VERSION *pUserKPVer = (KP_KPZ0_VERSION *)(kpCall->pData);
COPY_TO_USER_OR_KERNEL(&pUserKPVer->dwVer, &dwVer, sizeof(DWORD),
fIsKernelMode);
COPY_TO_USER_OR_KERNEL(pUserKPVer->cVer, "kp_kpz0 V1.00",
sizeof("kp_kpz0 V1.00") 1, fIsKernelMode);
kpCall->dwResult = KP_KPZ0_STATUS_OK;
}
break ;
case KP_KPZ0_MSG_DATA: /* Get data of the Kernel PlugIn driver */
if(!IsRingBufEmpty()) {
COPY_TO_USER_OR_KERNEL(kpCall->pData, &Tail->dwData[0],
FIFOHF*sizeof(DWORD), fIsKernelMode);
Tail = Tail->ptr;
}
kpCall->dwResult = KP_KPZ0_STATUS_OK;
break;
default:
kpCall->dwResult = KP_KPZ0_STATUS_MSG_NO_IMPL;
}
/* NOTE: You can modify the messages above and/or add your own
Kernel PlugIn messages.
When changing/adding messages, be sure to also update the messages
definitions in ../kpz0_lib.h. */
}
windriver10.21 PCI kernel驱动程序例 win7下可用
/* KP_KPZ0_Call is called when WD_KernelPlugInCall() is called from the user mode */
void __cdecl KP_KPZ0_Call(PVOID pDrvContext, WD_KERNEL_PLUGIN_CALL *kpCall,
BOOL fIsKernelMode)
{
KP_KPZ0_Trace("KP_KPZ0_Call entered. Message: 0x%lx\n", kpCall->dwMessage);
kpCall->dwResult = KP_KPZ0_STATUS_OK;
switch (kpCall->dwMessage)
{
case KP_KPZ0_MSG_VERSION: /* Get the version of the Kernel PlugIn driver */
{
DWORD dwVer = 100;
KP_KPZ0_VERSION *pUserKPVer = (KP_KPZ0_VERSION *)(kpCall->pData);
COPY_TO_USER_OR_KERNEL(&pUserKPVer->dwVer, &dwVer, sizeof(DWORD),
fIsKernelMode);
COPY_TO_USER_OR_KERNEL(pUserKPVer->cVer, "kp_kpz0 V1.00",
sizeof("kp_kpz0 V1.00") 1, fIsKernelMode);
kpCall->dwResult = KP_KPZ0_STATUS_OK;
}
break ;
case KP_KPZ0_MSG_DATA: /* Get data of the Kernel PlugIn driver */
if(!IsRingBufEmpty()) {
COPY_TO_USER_OR_KERNEL(kpCall->pData, &Tail->dwData[0],
FIFOHF*sizeof(DWORD), fIsKernelMode);
Tail = Tail->ptr;
}
kpCall->dwResult = KP_KPZ0_STATUS_OK;
break;
default:
kpCall->dwResult = KP_KPZ0_STATUS_MSG_NO_IMPL;
}
/* NOTE: You can modify the messages above and/or add your own
Kernel PlugIn messages.
When changing/adding messages, be sure to also update the messages
definitions in ../kpz0_lib.h. */
}