📄 1394.c
字号:
GetDlgItemText(hDlg, IDC_SEND_PHY_GAP_COUNT, tmpBuff, STRING_SIZE);
pPhyConfigPacket->PCP_Gap_Count = strtoul(tmpBuff, NULL, 16);
GetDlgItemText(hDlg, IDC_SEND_PHY_SET_GAP_COUNT, tmpBuff, STRING_SIZE);
pPhyConfigPacket->PCP_Set_Gap_Count = strtoul(tmpBuff, NULL, 16);
GetDlgItemText(hDlg, IDC_SEND_PHY_FORCE_ROOT, tmpBuff, STRING_SIZE);
pPhyConfigPacket->PCP_Force_Root = strtoul(tmpBuff, NULL, 16);
GetDlgItemText(hDlg, IDC_SEND_PHY_RESERVED1, tmpBuff, STRING_SIZE);
pPhyConfigPacket->PCP_Reserved1 = strtoul(tmpBuff, NULL, 16);
GetDlgItemText(hDlg, IDC_SEND_PHY_RESERVED2, tmpBuff, STRING_SIZE);
pPhyConfigPacket->PCP_Reserved2 = strtoul(tmpBuff, NULL, 16);
GetDlgItemText(hDlg, IDC_SEND_PHY_INVERSE, tmpBuff, STRING_SIZE);
pPhyConfigPacket->PCP_Inverse = strtoul(tmpBuff, NULL, 16);
EndDialog(hDlg, TRUE);
return(TRUE); // IDOK
case IDCANCEL:
EndDialog(hDlg, FALSE);
return(TRUE); // IDCANCEL
default:
return(TRUE); // default
} // switch
break; // WM_COMMAND
default:
break; // default
} // switch
return(FALSE);
} // SendPhyConfigDlgProc
void
w1394_SendPhyConfigPacket(
HWND hWnd,
PSTR szDeviceName
)
{
PHY_CONFIGURATION_PACKET phyConfigPacket;
DWORD dwRet;
TRACE(TL_TRACE, (hWnd, "Enter w1394_SendPhyConfigPacket\r\n"));
phyConfigPacket.PCP_Phys_ID = 0;
phyConfigPacket.PCP_Packet_ID = 0;
phyConfigPacket.PCP_Gap_Count = 0;
phyConfigPacket.PCP_Set_Gap_Count = 0;
phyConfigPacket.PCP_Force_Root = 0;
phyConfigPacket.PCP_Reserved1 = 0;
phyConfigPacket.PCP_Reserved2 = 0;
phyConfigPacket.PCP_Inverse = 0;
if (DialogBoxParam( (HINSTANCE) GetWindowLongPtr(hWnd, GWLP_HINSTANCE),
"SendPhyConfigPacket",
hWnd,
SendPhyConfigDlgProc,
(LPARAM)&phyConfigPacket
)) {
dwRet = SendPhyConfigurationPacket( hWnd,
szDeviceName,
&phyConfigPacket
);
}
TRACE(TL_TRACE, (hWnd, "Exit w1394_SendPhyConfigPacket\r\n"));
return;
} // w1394_SendPhyConfigPacket
INT_PTR CALLBACK
BusResetNotificationDlgProc(
HWND hDlg,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
)
{
static PULONG pFlags;
static CHAR tmpBuff[STRING_SIZE];
switch (uMsg) {
case WM_INITDIALOG:
pFlags = (PULONG)lParam;
CheckRadioButton( hDlg,
IDC_BUS_RESET_NOTIFY_REGISTER,
IDC_BUS_RESET_NOTIFY_DEREGISTER,
*pFlags + (IDC_BUS_RESET_NOTIFY_REGISTER-1)
);
return(TRUE); // WM_INITDIALOG
case WM_COMMAND:
switch (LOWORD(wParam)) {
case IDOK:
if (IsDlgButtonChecked(hDlg, IDC_BUS_RESET_NOTIFY_REGISTER))
*pFlags = REGISTER_NOTIFICATION_ROUTINE;
if (IsDlgButtonChecked(hDlg, IDC_BUS_RESET_NOTIFY_DEREGISTER))
*pFlags = DEREGISTER_NOTIFICATION_ROUTINE;
EndDialog(hDlg, TRUE);
return(TRUE); // IDOK
case IDCANCEL:
EndDialog(hDlg, FALSE);
return(TRUE); // IDCANCEL
default:
return(TRUE); // default
} // switch
break; // WM_COMMAND
default:
break; // default
} // switch
return(FALSE);
} // BusResetNotificationDlgProc
void
w1394_BusResetNotification(
HWND hWnd,
PSTR szDeviceName
)
{
ULONG fulFlags;
DWORD dwRet;
TRACE(TL_TRACE, (hWnd, "Enter w1394_BusResetNotification\r\n"));
fulFlags = REGISTER_NOTIFICATION_ROUTINE;
if (DialogBoxParam( (HINSTANCE) GetWindowLongPtr(hWnd, GWLP_HINSTANCE),
"BusResetNotification",
hWnd,
BusResetNotificationDlgProc,
(LPARAM)&fulFlags
)) {
dwRet = BusResetNotification( hWnd,
szDeviceName,
fulFlags
);
}
TRACE(TL_TRACE, (hWnd, "Exit w1394_BusResetNotification\r\n"));
return;
} // w1394_BusResetNotification
INT_PTR CALLBACK
SetLocalHostInfoDlgProc(
HWND hDlg,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
)
{
static PSET_LOCAL_HOST_INFORMATION pSetLocalHostInfo;
static PSET_LOCAL_HOST_PROPS2 pSetLocalHostProps2;
static PSET_LOCAL_HOST_PROPS3 pSetLocalHostProps3;
static CHAR tmpBuff[STRING_SIZE];
switch (uMsg) {
case WM_INITDIALOG:
pSetLocalHostInfo = (PSET_LOCAL_HOST_INFORMATION)lParam;
CheckRadioButton( hDlg,
IDC_SET_LOCAL_HOST_LEVEL_GAP_COUNT,
IDC_SET_LOCAL_HOST_LEVEL_CROM,
pSetLocalHostInfo->nLevel + (IDC_SET_LOCAL_HOST_LEVEL_GAP_COUNT-2)
);
CheckRadioButton( hDlg,
IDC_SET_LOCAL_HOST_CROM_ADD,
IDC_SET_LOCAL_HOST_CROM_REMOVE,
IDC_SET_LOCAL_HOST_CROM_ADD
);
if (pSetLocalHostInfo->nLevel == SET_LOCAL_HOST_PROPERTIES_GAP_COUNT) {
pSetLocalHostProps2 = (PSET_LOCAL_HOST_PROPS2)pSetLocalHostInfo->Information;
_ultoa(pSetLocalHostProps2->GapCountLowerBound, tmpBuff, 16);
SetDlgItemText(hDlg, IDC_SET_LOCAL_HOST_GAP_COUNT, tmpBuff);
}
if (pSetLocalHostInfo->nLevel == SET_LOCAL_HOST_PROPERTIES_MODIFY_CROM) {
pSetLocalHostProps3 = (PSET_LOCAL_HOST_PROPS3)pSetLocalHostInfo->Information;
CheckRadioButton( hDlg,
IDC_SET_LOCAL_HOST_CROM_ADD,
IDC_SET_LOCAL_HOST_CROM_REMOVE,
pSetLocalHostProps3->fulFlags + (IDC_SET_LOCAL_HOST_CROM_ADD-1)
);
//_ultoa((ULONG)((ULONG_PTR)pSetLocalHostProps3->hCromData), tmpBuff, 16);
sprintf (tmpBuff, "%p", pSetLocalHostProps3->hCromData);
SetDlgItemText(hDlg, IDC_SET_LOCAL_HOST_CROM_HCROMDATA, tmpBuff);
_ultoa(pSetLocalHostProps3->nLength, tmpBuff, 16);
SetDlgItemText(hDlg, IDC_SET_LOCAL_HOST_CROM_NLENGTH, tmpBuff);
}
return(TRUE); // WM_INITDIALOG
case WM_COMMAND:
switch (LOWORD(wParam)) {
case IDOK:
if (IsDlgButtonChecked(hDlg, IDC_SET_LOCAL_HOST_LEVEL_GAP_COUNT)) {
pSetLocalHostInfo->nLevel = SET_LOCAL_HOST_PROPERTIES_GAP_COUNT;
GetDlgItemText(hDlg, IDC_SET_LOCAL_HOST_GAP_COUNT, tmpBuff, STRING_SIZE);
pSetLocalHostProps2->GapCountLowerBound = strtoul(tmpBuff, NULL, 16);
}
if (IsDlgButtonChecked(hDlg, IDC_SET_LOCAL_HOST_LEVEL_CROM)) {
pSetLocalHostInfo->nLevel = SET_LOCAL_HOST_PROPERTIES_MODIFY_CROM;
if (IsDlgButtonChecked(hDlg, IDC_SET_LOCAL_HOST_CROM_ADD))
pSetLocalHostProps3->fulFlags = SLHP_FLAG_ADD_CROM_DATA;
if (IsDlgButtonChecked(hDlg, IDC_SET_LOCAL_HOST_CROM_REMOVE))
pSetLocalHostProps3->fulFlags = SLHP_FLAG_REMOVE_CROM_DATA;
GetDlgItemText(hDlg, IDC_SET_LOCAL_HOST_CROM_HCROMDATA, tmpBuff, STRING_SIZE);
if (!sscanf (tmpBuff, "%p", &(pSetLocalHostProps3->hCromData)))
{
// failed to get the handle, just return here
EndDialog(hDlg, TRUE);
return FALSE;
}
GetDlgItemText(hDlg, IDC_SET_LOCAL_HOST_CROM_NLENGTH, tmpBuff, STRING_SIZE);
pSetLocalHostProps3->nLength = strtoul(tmpBuff, NULL, 16);
// let's set the correct buffer size...
pSetLocalHostInfo->ulBufferSize = sizeof(SET_LOCAL_HOST_INFORMATION)+sizeof(SET_LOCAL_HOST_PROPS3)+pSetLocalHostProps3->nLength;
}
EndDialog(hDlg, TRUE);
return(TRUE); // IDOK
case IDCANCEL:
EndDialog(hDlg, FALSE);
return(TRUE); // IDCANCEL
default:
return(TRUE); // default
} // switch
break; // WM_COMMAND
default:
break; // default
} // switch
return(FALSE);
} // SetLocalHostInfoDlgProc
void
w1394_SetLocalHostInfo(
HWND hWnd,
PSTR szDeviceName
)
{
PSET_LOCAL_HOST_INFORMATION SetLocalHostInfo;
PSET_LOCAL_HOST_PROPS2 SetLocalHostProps2;
PSET_LOCAL_HOST_PROPS3 SetLocalHostProps3;
DWORD dwRet;
ULONG ulBufferSize;
PULONG UnitDir;
TRACE(TL_TRACE, (hWnd, "Enter w1394_SetLocalHostInfo\r\n"));
/*
ulBufferSize = sizeof(SET_LOCAL_HOST_INFORMATION)+sizeof(SET_LOCAL_HOST_PROPS2);
SetLocalHostInfo = (PSET_LOCAL_HOST_INFORMATION)LocalAlloc(LPTR, ulBufferSize);
SetLocalHostInfo->nLevel = SET_LOCAL_HOST_PROPERTIES_GAP_COUNT;
SetLocalHostInfo->ulBufferSize = ulBufferSize;
SetLocalHostProps2 = (PSET_LOCAL_HOST_PROPS2)SetLocalHostInfo->Information;
SetLocalHostProps2->GapCountLowerBound = 0;
*/
ulBufferSize = sizeof(SET_LOCAL_HOST_INFORMATION)+sizeof(SET_LOCAL_HOST_PROPS3)+8;//4096;
SetLocalHostInfo = (PSET_LOCAL_HOST_INFORMATION)LocalAlloc(LPTR, ulBufferSize);
if (!SetLocalHostInfo) {
dwRet = GetLastError();
TRACE(TL_ERROR, (hWnd, "Unable to allocate SetLocalHostInfo!\r\n"));
goto Exit_SetLocalHostInfo;
}
SetLocalHostInfo->nLevel = SET_LOCAL_HOST_PROPERTIES_MODIFY_CROM;
SetLocalHostInfo->ulBufferSize = ulBufferSize;
SetLocalHostProps3 = (PSET_LOCAL_HOST_PROPS3)SetLocalHostInfo->Information;
SetLocalHostProps3->fulFlags = SLHP_FLAG_ADD_CROM_DATA;
SetLocalHostProps3->hCromData = 0;
SetLocalHostProps3->nLength = 12;
UnitDir = (PULONG)&SetLocalHostProps3->Buffer;
*UnitDir = 0xEFBE0200;
UnitDir++;
*UnitDir = 0x0A000012;
UnitDir++;
*UnitDir = 0x0B000013;
if (DialogBoxParam( (HINSTANCE) GetWindowLongPtr(hWnd, GWLP_HINSTANCE),
"SetLocalHostInfo",
hWnd,
SetLocalHostInfoDlgProc,
(LPARAM)SetLocalHostInfo
)) {
dwRet = SetLocalHostInformation( hWnd,
szDeviceName,
SetLocalHostInfo
);
}
Exit_SetLocalHostInfo:
if (SetLocalHostInfo)
LocalFree(SetLocalHostInfo);
TRACE(TL_TRACE, (hWnd, "Exit w1394_SetLocalHostInfo\r\n"));
return;
} // w1394_SetLocalHostInfo
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -