我们有时并不希望驱动中的iocontrol可以被任意应用程序调用,因此可以在Iocontrol中加一些签证的验证来确保能call进来的程序都是“自己人”。 下面是一段例子:
if (CeGetCallerTrust() != OEM_CERTIFY_TRUST)
{
RETAILMSG(ZONE_ERROR, (L"ERROR: : "
L"Caller is untrused/r/n"
));
SetLastError(ERROR_ACCESS_DENIED);
break;
}
if (!CeSafeCopyMemory(&dx, pBufIn, sizeof(dx)))
{
SetLastError(ERROR_INVALID_PARAMETER);
break;
} 同时用CeSafeCopyMemory来处理传入的指针。
{
RETAILMSG(ZONE_ERROR, (L"ERROR: : "
L"Caller is untrused/r/n"
));
SetLastError(ERROR_ACCESS_DENIED);
break;
}
if (!CeSafeCopyMemory(&dx, pBufIn, sizeof(dx)))
{
SetLastError(ERROR_INVALID_PARAMETER);
break;
} 同时用CeSafeCopyMemory来处理传入的指针。