导航:首页 > 五金知识 > 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工具箱相关的资料

热点内容
steam令牌换设备了怎么办 浏览:246
新生测听力仪器怎么看结果 浏览:224
化学试验排水集气法的实验装置 浏览:156
家用水泵轴承位置漏水怎么回事 浏览:131
羊水镜设备多少钱一台 浏览:125
机械制图里型钢如何表示 浏览:19
测定空气中氧气含量实验装置如图所示 浏览:718
超声波换能器等级怎么分 浏览:800
3万轴承是什么意思 浏览:110
鑫旺五金制品厂 浏览:861
苏州四通阀制冷配件一般加多少 浏览:153
江北全套健身器材哪里有 浏览:106
水表阀门不开怎么办 浏览:109
花冠仪表盘怎么显示时速 浏览:106
洗砂机多少钱一台18沃力机械 浏览:489
超声波碎石用什么材料 浏览:607
组装实验室制取二氧化碳的简易装置的方法 浏览:165
怎么知道天然气充不了阀门关闭 浏览:902
公司卖旧设备挂什么科目 浏览:544
尚叶五金机电 浏览:59