|
文字制限にかかったので 後ろの部分
/A invoke SetupDiGetClassDevsA,ADDR InterfaceClassGuid,NULL,NULL,18 ;
/A ;invoke SetupDiGetClassDevsA,NULL,0,0,18; ;
/A MOV [EBP],EAX
/A MOV DeviceInfoTable,EAX
/A INVOKE GetLastError
/A MOV [EBP+8],EAX
/A MOV InterfaceIndex,0
/A MOV DInterfaceDataStructure.cbSize,28;サイズ
/A MOV EAX,OFFSET DInterfaceDataStructure ;データアドレスを転送する
/A MOV InterfaceDataStructure,EAX
/A MOV [EBP+4],EAX
/A INVOKE SetupDiEnumDeviceInterfaces, \
/A DeviceInfoTable,NULL,ADDR InterfaceClassGuid, \
/A InterfaceIndex,InterfaceDataStructure
/A MOV [EBP],EAX
/A INVOKE GetLastError
/A MOV [EBP+8],EAX
/A INVOKE GetLastError
/A MOV USBEST,EAX
/A MOV [EBP+8],EAX
/A INVOKE SetupDiDestroyDeviceInfoList,DeviceInfoTable
/A MOV [EBP],EAX
/A INVOKE GetLastError
/A MOV USBEST,EAX
/A MOV [EBP+8],EAX
/A INVOKE GetLastError
/A MOV ErrorStatus,EAX
/A MOV [EBP+8],EAX
/A INVOKE SetupDiDestroyDeviceInfoList,DeviceInfoTable
/A MOV [EBP],EAX
/A INVOKE GetLastError
/A MOV USBEST,EAX
/A MOV [EBP+12],EAX
/A MOV DevInfoData.cbSize,28
/A MOV EAX,OFFSET DevInfoData
/A MOV PDevInfoData,EAX
/A MOV InterfaceIndex,0
/A INVOKE SetupDiEnumDeviceInfo,DeviceInfoTable, \
/A InterfaceIndex, ADDR DevInfoData
/A MOV [EBP],EAX
/A INVOKE GetLastError
/A MOV [EBP+8],EAX
/A MOV EAX,OFFSET DevInfoData
/A MOV [EBP+4],EAX
/A INVOKE SetupDiGetDeviceRegistryPropertyA,DeviceInfoTable, \
/A ADDR DevInfoData,1, \
/A ADDR dwRegType, NULL, 0, ADDR dwRegSize
/A MOV [EBP+8],EAX
/A MOV EAX,dwRegSize ;実行結果36が帰ってきた
/A MOV [EBP],EAX
/A INVOKE GetLastError
/A MOV [EBP+12],EAX ;7A 122 システム コールに渡されるデータ領域が小さすぎます。
/A MOV EAX,OFFSET DPropertyValueBuffer
/A MOV PropertyValueBuffer,EAX
/A INVOKE SetupDiGetDeviceRegistryPropertyA,DeviceInfoTable, \
/A ADDR DevInfoData, 1, ADDR dwRegType, \
/A PropertyValueBuffer, dwRegSize, NULL
/A MOV [EBP],EAX
/A INVOKE GetLastError
/A MOV [EBP+8],EAX
/A MOV EAX,StructureSize
/A MOV [EBP],EAX
TRSWT(0H,' StructureSize= ',0) TRSWT(1,WKL,1)
/A MOV DetailedInterfaceDataStructure.cbSize,5
/A ;MOV StructureSize,8 ;????XX
/A INVOKE SetupDiGetDeviceInterfaceDetailA,DeviceInfoTable, \
/A InterfaceDataStructure, NULL, NULL,ADDR StructureSize, NULL
/A MOV [EBP],EAX
/A INVOKE GetLastError
/A MOV [EBP+8],EAX ;7AH 122 システム コールに渡されるデータ領域が小さすぎます
/A MOV EAX,StructureSize ;54H で戻っている
/A MOV [EBP+12],EAX
/* 0000 007A 0054 */
TRSWT(0H,' h ',0) TRSWT(1,WKL,1) TRSWT(1,WKL1,1) TRSWT(1,WKL2,1)
/A MOV EAX,OFFSET DetailedInterfaceDataStructure
/A MOV [EBP+4],EAX
/A MOV EAX,OFFSET DetailedInterfaceDataStructure
/A MOV PDetailedInterfaceDataStructure,EAX
/A MOV [EBP+4],EAX
/A MOV DetailedInterfaceDataStructure.cbSize,5 ;54H ;54H ;? 58?
/A INVOKE SetupDiGetDeviceInterfaceDetailA,DeviceInfoTable, \
/A InterfaceDataStructure, PDetailedInterfaceDataStructure, \
/A StructureSize, 0,0
/A MOV [EBP],EAX
/A INVOKE GetLastError
/A MOV [EBP+8],EAX ;6F8 1784 要求された操作に対して与えられたバッファが無効です。
/A MOV EAX,StructureSize
/A MOV [EBP+12],EAX
/A INVOKE CreateFile,ADDR DetailedInterfaceDataStructure.DevicePath,\
/A 0C0000000H,3,NULL,3,40000000H,0
/A MOV MyDeviceHandle,EAX
/A MOV [EBP],EAX
/A INVOKE GetLastError
/A MOV [EBP+8],EAX ;7BH 123 ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。
/A INVOKE WinUsb_Initialize,MyDeviceHandle, \
/A ADDR MyWinUSBInterfaceHandle ;
/A MOV BoolStatus,EAX
/A MOV [EBP],EAX
/A INVOKE WinUsb_Free,MyWinUSBInterfaceHandle
/A invoke CloseHandle,MyDeviceHandle
/* ================================================== */
/A MOV EAX,OFFSET GTBFD
/A MOV [EBP+4],EAX
MOVE 80H TO *P
/A INVOKE WinUsb_WritePipe,MyWinUSBInterfaceHandle, \
/A 01, ADDR GTBFD, 64, ADDR BytesWritten, NULL ;
/A MOV EAX,OFFSET GTBFD
/A MOV [EBP+4],EAX
MOVE 81H TO *P
/A INVOKE WinUsb_WritePipe,MyWinUSBInterfaceHandle, \
/A 01, ADDR GTBFD, 64, ADDR BytesWritten, NULL ;
/A INVOKE WinUsb_ReadPipe,MyWinUSBInterfaceHandle, \
/A 81H,ADDR GTBFD, 64, ADDR BytesRead, NULL ;
|

- >
- コンピュータとインターネット
- >
- コンピュータ
- >
- その他コンピュータ




