导航:首页 > 五金知识 > maxddk工具箱

maxddk工具箱

发布时间:2021-12-11 22:37:18

㈠ 驱动编写用DDK无法生成驱动老是提示 从“PDRIVER_OBJECT *”到“PDEVICE_OBJECT *”的类型不兼容求求

typedef struct _DEVICE_EXTENSION {
PDEVICE_OBJECT pDevice;
UNICODE_STRING ustrDeviceName; //设备名称
UNICODE_STRING ustrSymLinkName; //符号链接名

PUCHAR buffer;//缓冲区
ULONG file_length;//模拟的文件长度,必须小于MAX_FILE_LENGTH
} DEVICE_EXTENSION, *PDEVICE_EXTENSION;

#pragma INITCODE
NTSTATUS CreateDevice (
IN PDRIVER_OBJECT pDriverObject)
{
NTSTATUS status;
PDEVICE_OBJECT pDevObj;
PDEVICE_EXTENSION pDevExt;

//创建设备名称
UNICODE_STRING devName;
RtlInitUnicodeString(&devName,L"\\Device\\MyDDKDevice");

//创建设备
status = IoCreateDevice( pDriverObject,
sizeof(DEVICE_EXTENSION),
&(UNICODE_STRING)devName,
FILE_DEVICE_UNKNOWN,
0, TRUE,
&pDevObj );
if (!NT_SUCCESS(status))
return status;

pDevObj->Flags |= DO_BUFFERED_IO;
pDevExt = (PDEVICE_EXTENSION)pDevObj->DeviceExtension;
pDevExt->pDevice = pDevObj;
pDevExt->ustrDeviceName = devName;

//申请模拟文件的缓冲区
pDevExt->buffer=(PUCHAR)ExAllocatePool(PagedPool,MAX_FILE_LENGTH);
//设置模拟文件大小
pDevExt->file_length=0;

//创建符号链接
UNICODE_STRING symLinkName;
RtlInitUnicodeString(&symLinkName,L"\\??\\HelloDDK");
pDevExt->ustrSymLinkName = symLinkName;
status = IoCreateSymbolicLink( &symLinkName,&devName );
if (!NT_SUCCESS(status))
{
IoDeleteDevice( pDevObj );
return status;
}
return STATUS_SUCCESS;
}

#pragma PAGEDCODE
VOID HelloDDKUnload (IN PDRIVER_OBJECT pDriverObject)
{
PDEVICE_OBJECT pNextObj;
KdPrint(("Enter DriverUnload\n"));
pNextObj = pDriverObject->DeviceObject;
while (pNextObj != NULL)
{
PDEVICE_EXTENSION pDevExt = (PDEVICE_EXTENSION)pNextObj->DeviceExtension;

if(pDevExt->buffer!=NULL)
{
ExFreePool(pDevExt->buffer);
pDevExt->buffer=NULL;
}
//删除符号链接
UNICODE_STRING pLinkName = pDevExt->ustrSymLinkName;
IoDeleteSymbolicLink(&pLinkName);
pNextObj = pNextObj->NextDevice;
IoDeleteDevice( pDevExt->pDevice );
}
}
求哪位编驱动的高手解释一下吧,小弟正在学习驱动

㈡ DDK和C++builder

有一段程序,你参考一下吧,我也没仔细看,希望能帮到你

#include<vcl.h>
#include<dir.h>
#include<setupapi.h>
#include"C:/WINDDK/3790/inc/ddk/w2k/usbdi.h"
#include"C:/WINDDK/3790/inc/ddk/w2k/devioctl.h"
#include<initguid.h>
//---------------------------------------------------------------------------
//DEFINE_GUID(USB_DRIVER_GUID,0x12345678,0xabcd,0x1122,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0x00);
//---------------------------------------------------------------------------
HANDLEOpenOneDevice(HDEVINFOhDvcInfo,PSP_INTERFACE_DEVICE_DATADvcInfoData,char*sDevNameBuf)
{
HANDLEhOut=INVALID_HANDLE_VALUE;
ULONGiReqLen=0;
(hDvcInfo,DvcInfoData,NULL,0,&iReqLen,NULL);
ULONGiDevDataLen=iReqLen;//sizeof(SP_FNCLASS_DEVICE_DATA)+512;
PSP_INTERFACE_DEVICE_DETAIL_DATApDevData=(PSP_INTERFACE_DEVICE_DETAIL_DATA)malloc(iDevDataLen);
pDevData->cbSize=sizeof(SP_INTERFACE_DEVICE_DETAIL_DATA);
if((hDvcInfo,DvcInfoData,pDevData,iDevDataLen,&iReqLen,NULL))
{
strcpy(sDevNameBuf,pDevData->DevicePath);
hOut=CreateFile(pDevData->DevicePath,GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL);
}
free(pDevData);
returnhOut;
}
//---------------------------------------------------------------------------
HANDLEOpenUsbDevice(constGUID*pGuid,char*sDevNameBuf)
{
HANDLEhOut=INVALID_HANDLE_VALUE;
HDEVINFOhDevInfo=SetupDiGetClassDevs(pGuid,NULL,NULL,DIGCF_PRESENT|DIGCF_INTERFACEDEVICE);
SP_INTERFACE_DEVICE_DATAdeviceInfoData;
deviceInfoData.cbSize=sizeof(SP_INTERFACE_DEVICE_DATA);
ULONGnGuessCount=MAXLONG;
for(ULONGiDevIndex=0;iDevIndex<nGuessCount;iDevIndex++)
{
if(SetupDiEnumDeviceInterfaces(hDevInfo,0,pGuid,iDevIndex,&deviceInfoData))
{
if((hOut=OpenOneDevice(hDevInfo,&deviceInfoData,sDevNameBuf))!=INVALID_HANDLE_VALUE)
break;
}
elseif(GetLastError()==ERROR_NO_MORE_ITEMS)//Nomoreitems
{
break;
}
}
SetupDiDestroyDeviceInfoList(hDevInfo);
returnhOut;
}
//---------------------------------------------------------------------------
boolGetUsbDeviceFileName(constGUID*pGuid,char*sDevNameBuf)
{
HANDLEhDev=OpenUsbDevice(pGuid,sDevNameBuf);
if(hDev!=INVALID_HANDLE_VALUE)
{
CloseHandle(hDev);
returntrue;
}
returnfalse;
}
//---------------------------------------------------------------------------
HANDLEOpenMyDevice()
{
charDeviceName[MAXPATH]="";
returnOpenUsbDevice(&USB_DRIVER_GUID,DeviceName);
}
//---------------------------------------------------------------------------
HANDLEOpenMyDevPipe(constchar*PipeName)
{
charDeviceName[MAXPATH]="";
if(GetUsbDeviceFileName(&USB_DRIVER_GUID,DeviceName))
{
strcat(DeviceName,"\");
strcat(DeviceName,PipeName);
returnCreateFile(DeviceName,GENERIC_WRITE|GENERIC_READ,FILE_SHARE_WRITE|FILE_SHARE_READ,NULL,OPEN_EXISTING,0,NULL);
}
returnINVALID_HANDLE_VALUE;
}

㈢ 3D Max 的DDK 插件哪里有

http://www.93kk.com/down/plugins/1.html

㈣ 3dsMax8绿色版注册机

这个算好后是 XX2S96W1FEHQUH6X 8LXA1RFWTKN60YNP 直接复制粘贴 绝对管用 要不我在给你传个 注册机 管用!

㈤ 3D max插件“渲梦工厂1.4”注册机谁有麻烦传一个,三零三七七三四零六

貌似必须淘宝 购买。。。我也在寻求解决办法

㈥ 3d max ddk怎么安装

安装路径如图,复制进去就可以了

㈦ 3DS MAX V9.0 新序列号 激活码

YT0L0A3XPTH9ELKE GWWHCETG9VTDC5RG

㈧ 急求Autodesk 3ds Max 8序列号

HJLR5YS3DDKQQN1J 4FFDUPNUYWAV80XA

KREW2ZYLY5JP24YP NHK03LFV3RANKX8D

Y6AZPATCPF16Y0SJ 13NLKR6DS0CS94QS

三选一

阅读全文

与maxddk工具箱相关的资料

热点内容
mac一体机怎么连接机械硬盘 浏览:940
什么设备上都带仪表 浏览:819
练大肚子的器材有哪些 浏览:962
深圳精诚鑫五金制品 浏览:695
实验室常用的蒸馏装置图 浏览:870
机械设备日常检查记录表如何填写 浏览:581
家里自来水总阀门怎么加 浏览:187
常用仪表测什么 浏览:719
温州广纳五金装饰市场 浏览:77
宝安高级科技探究器材哪里有卖 浏览:478
大众朗逸仪表盘怎么成英文了 浏览:144
电动工具用什么手套 浏览:407
车辆机械故障是什么原因 浏览:515
暖气管道丝杠阀门图片 浏览:829
科学仪器属于什么 浏览:192
仪表盘上五角星是什么 浏览:972
煤矿井下自动灭火装置 浏览:224
江苏二类机械费多少钱 浏览:215
自动加药装置验收 浏览:116
暖气总阀门如何开关 浏览:245