導航:首頁 > 五金知識 > 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工具箱相關的資料

熱點內容
暖氣管道絲杠閥門圖片 瀏覽:829
科學儀器屬於什麼 瀏覽:192
儀表盤上五角星是什麼 瀏覽:972
煤礦井下自動滅火裝置 瀏覽:224
江蘇二類機械費多少錢 瀏覽:215
自動加葯裝置驗收 瀏覽:116
暖氣總閥門如何開關 瀏覽:245
工具箱家居 瀏覽:875
染頭發的儀器是什麼 瀏覽:872
閥門上的雙向箭頭表示什麼 瀏覽:552
水管中間怎麼接閥門 瀏覽:342
演示實驗結束後拆卸裝置放哪 瀏覽:719
手動閥門怎麼打開 瀏覽:782
途岳如何把儀表盤碼數顯示數字 瀏覽:133
天然氣閥門關閉打不開 瀏覽:306
點樣展開實驗的裝置圖 瀏覽:449
設備租賃成本占收入多少 瀏覽:959
電動工具內容 瀏覽:537
穿透塗層超聲波測厚儀什麼牌子好 瀏覽:338
超聲波屬於什麼設備 瀏覽:88