jjzjj

windows - 我可以将 Linux DMA 驱动程序移植到 Windows 吗?

我想在不进行重大更改的情况下在Windows上运行它。我希望,我可以只更改标题和相应的功能。http://www.alterawiki.com/wiki/File:G2x4_avmm_dma_Linux.tar.gz 最佳答案 是的,你可以,如果你有程序员的头脑,熟悉C、asm和计算机体系结构,并且有大约2-4年的时间学习Windows和linux上的驱动程序编程。但是,如果您拥有所有这些,您将能够在世界上最好的地方找到一份至少数千美元(euro)的工作,如果您没有,甚至可以获得IT工作签证。足够幸运,已经在室内出生了。无论如何,如

windows - 启动 Windows 驱动程序开发

我正计划开始开发Windows驱动程序,但我有一些问题。如何启动一个简单的VisualStudio驱动程序项目?我正在使用VisualStudioUltimate2012,并且我在MSDN上阅读了如何制作一个简单的软件驱动程序,但是在教程中,在NewProject窗口中,有比我更多的选项。更准确地说,我没有Templates>VisualC++>WindowsDrivers。或者,如果我在网上搜索UserModeDriver(UMDF),我什么也找不到。我已经安装了WDK8.1为了正确构建驱动程序项目,我应该做哪些额外的更改? 最佳答案

c - 如何正确使用 ExAllocatePoolWithTag 使其不返回 STATUS_INSUFFICIENT_RESOURCES?

我正在为IO过滤器驱动程序编写内核模式测试。当我运行我的测试时,它们都通过了,但是如果我连续运行它们3次,测试就会开始失败。我将问题缩小到ExAllocatePoolWithTag一段时间后开始返回STATUS_INSUFFICIENT_RESOURCES。为了重现这个问题我写了一个专门的测试staticvoid__stdcallTestFoo_StressLoad(){inti;for(i=0;i我的使用模式是:分配内存(ExAllocatePoolWithTag)执行单个测试释放内存(ExFreePoolWithTag)我的问题是:如何正确使用ExAllocatePoolWithT

windows - 如果标记为 RWX,可丢弃部分对内核驱动程序有什么影响?

我对PE文件中部分标志中的DISCARDABLE标志很感兴趣,特别是在Windows驱动程序的上下文中(在本例中为NDIS)。我注意到INIT部分在我正在审查的驱动程序中被标记为RWX,这看起来很奇怪-良好的安全实践表明您应该采用W^X策略。该部分的转储如下:NameVirtualSizeVirtualAddrRawSizeRawAddrRelocAddrLineNumsRelocCountLineNumCountCharacteristicsINIT00000B7E0000E00000000C000000B200000000000000000000000000E2000020特征映射

c - 如何在 C 中将 IOCTL 发送到 Windows 上的所有驱动程序

有人可以向我提供示例C代码,其中列出了我可以使用Createfile()打开的所有设备名称吗?我总是收到错误代码3:路径不存在不起作用的示例代码:#define_CRT_SECURE_NO_WARNINGS#include#include#include#include#include#include#include#include#include#include#include#pragmacomment(lib,"Setupapi.lib")intmain(void){HDEVINFOdeviceInfoList;deviceInfoList=SetupDiGetClassDevs

windows - 在 Windows 10 中签署使用 WinUSB 驱动程序的自定义 *.cat 文件

我需要一些有关Windows10中驱动程序签名的说明。我们有使用Winusb.sys驱动程序的工作驱动程序包,该驱动程序从一开始就由Microsoft签名。但是要将此驱动程序安装到客户机器上,我们有自己的*.inf和2个为每个支持的平台生成的*.cat文件。目前我们在Windows10中使用此驱动程序没有问题,因为修改了对Windows8的支持,但我们希望在不久的将来为驱动程序添加一些额外的硬件设备支持,因此它将被修改并需要辞职。问题是我们需要什么证书(扩展验证(“EV”)代码签名证书或只是标准证书)来签署这些*.cat文件,以便我们的驱动程序可以在Windows10上正确安装。还有必

windows - FILE_FLAG_NO_BUFFERING 如何与向通信设备打开的句柄交互?

正如标题所说,我正在编写一个网络程序,我在其中使用CreateFile打开网络驱动程序的句柄,并且我一直在试验NO_BUFFERING标志。大多数文档甚至都不会提及将其与通信设备一起使用,而那些这样做的文档(又名MSDN引用等)只是简单地提到您可以。有谁知道这会如何影响与设备的通信? 最佳答案 这是一个设备驱动程序实现细节,您在CreateFile()调用中指定的选项在IRP_MJ_REQUESTrequest中传递.我链接的那个是用于文件系统的,非常漂亮。通过IrpSp->Parameters.Create.Options链接单击

windows - 设备不存在时是否可以完全安装驱动程序?

是否可以在插入物理设备之前在系统上完全安装(而不仅仅是预安装)设备驱动程序?特别是,我正在查看D2XXdriversbyFTDI.他们的驱动程序安装程序有效地运行dpinst.exe,如果您观察该程序的控制台输出,它是这样说的:Nomatchingdevicewasfoundfor'c:\drivers\ftdiport.inf'.Driverwillbeinstalledwhenpluggedin.问题是我还在使用他们的.NET库来访问设备,而且那个库很有趣。如果未安装驱动程序,它会在构造函数中弹出警报。当然,通常的解决办法是简单地插入设备并让驱动程序安装正常完成,但有时这一点会被忽

windows - 如何注册acpi事件通知?(AcpiInterfaces.RegisterForDeviceNotifications)

现在我想在我的acpi驱动程序中添加该功能。功能是:获取BIOS通知。我搜索一些文档,然后编写代码NTSTATUSXxxAddDevice(__instruct_DRIVER_OBJECT*DriverObject,__instruct_DEVICE_OBJECT*PhysicalDeviceObject){...status=STATUS_SUCCESS;DebugPrint(("AddDevice:%pto%p->%p\n",fdo,fdoData->NextLowerDO,PhysicalDeviceObject));DebugPrint(("DeviceObjectFlag=0

windows - Vulkan 在 Linux 上找不到物理设备

我一直想使用新的图形APIVulkan,并且已经在Windows7上顺利启动并运行它。但是我无法让Vulkan在Linux上工作。当我尝试运行任何LunarG示例,甚至是我自己的代码时,vkEnumeratePhysicalDevices总是说没有物理设备。这是我的设置:OS:Ubuntu16.04(LTS)[x64]GPU:NvidiaGeforceGT7302GBGDDR5Driver:NVIDIABinarydriver-version364.19fromnvidia-364(opensource)VulkanSDK:LunarGv1.0.17.0[latestversion]我