㈠ 驅動編寫用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
三選一