⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 win1394.c

📁 winddk src目录下的WDM源码压缩!
💻 C
📖 第 1 页 / 共 2 页
字号:
            SetTimer(hWnd, APP_TIMER_ID, 1000, NULL);

            SelectedDevice = NULL;

            RegisterClient(hWnd);

        break; // WM_CREATE

        case WM_DESTROY:

            DeRegisterClient(hWnd);

            PostQuitMessage(0);
            break; // WM_DESTROY

        case WM_SIZE:

            MoveWindow(g_hWndEdit, 0, 0, LOWORD(lParam), HIWORD(lParam), TRUE);
            break; // WM_SIZE

        case WM_TIMER:

            // if async loopback test is running, print results
            if (asyncLoopbackStarted && !asyncLoopbackParams.bKill) {
                TRACE(TL_TRACE, (g_hWndEdit, "Async - Iterations = 0x%x\t\tPass = 0x%x\t\tFail = 0x%x\r\n", asyncLoopbackParams.ulIterations, asyncLoopbackParams.ulPass, asyncLoopbackParams.ulFail));
            }

            // if isoch loopback test is running, print results
            if (isochLoopbackStarted && !isochLoopbackParams.bKill) {
                TRACE(TL_TRACE, (g_hWndEdit, "Isoch - Iterations = 0x%x\t\tPass = 0x%x\t\tFail = 0x%x\r\n", isochLoopbackParams.ulIterations, isochLoopbackParams.ulPass, isochLoopbackParams.ulFail));
            }

            // if async stream loopback test is running, print results
            if (streamLoopbackStarted && !streamLoopbackParams.bKill) {
                TRACE(TL_TRACE, (g_hWndEdit, "Async Stream - Iterations = 0x%x\t\tPass = 0x%x\t\tFail = 0x%x\r\n", streamLoopbackParams.ulIterations, streamLoopbackParams.ulPass, streamLoopbackParams.ulFail));
            }

            break; // WM_TIMER

        case WM_COMMAND:

            switch(LOWORD(wParam)) {

                case EDIT_ID:

                    switch (HIWORD(wParam)) {

                        // check fot text overflow in edit control
                        case EN_ERRSPACE:
                        case EN_MAXTEXT:

                            // just clear out the buffer
                            SetWindowText(g_hWndEdit, "\0");
                            break;

                        default:
                            break;
                    }
                break;

                case IDM_CLEAR_BUFFER:

                    SetWindowText(g_hWndEdit, "\0");
                    break; // IDM_CLEAR_BUFFER

                case IDM_ABOUT:
                    DialogBox(g_hInstance, "IDD_ABOUTBOX", hWnd, w1394_AboutDlgProc);
                    break; // IDM_ABOUT

                case IDM_EXIT:

                    SendMessage(hWnd, WM_DESTROY, 0, 0L);
                    break; // IDM_EXIT

                case IDM_SELECT_TEST_DEVICE:

                    if (DeviceData.numDevices) {

                        w1394_SelectTestDevice(g_hWndEdit);
                    }
                    else {

                        TRACE(TL_TRACE, (g_hWndEdit, "No available test device.\r\n"));
                    }
                    break; // IDM_SELECT_TEST_DEVICE

                case IDM_ADD_VIRTUAL_DRIVER:

                    w1394_AddVirtualDriver (g_hWndEdit);

                    break; // IDM_ADD_VIRTUAL_DRIVER

                case IDM_REMOVE_VIRTUAL_DRIVER:

                    w1394_RemoveVirtualDriver (g_hWndEdit);

                    break; // IDM_ADD_VIRTUAL_DRIVER

                case IDM_SELECT_VIRTUAL_TEST_DEVICE:

                    if (VirtDeviceData.numDevices) {

                        w1394_SelectVirtualTestDevice(g_hWndEdit);
                    }
                    else {

                        TRACE(TL_TRACE, (g_hWndEdit, "No available virtual test devices.\r\n"));
                    }
                    break; // IDM_SELECT_VIRT_TEST_DEVICE

                case IDM_ENABLE_DIAGNOSTIC_MODE:

                    DiagnosticMode(g_hWndEdit, szBusName, TRUE, TRUE);
                    break; // IDM_ENABLE_DIAGNOSTIC_MODE

                case IDM_DISABLE_DIAGNOSTIC_MODE:

                    DiagnosticMode(g_hWndEdit, szBusName, FALSE, TRUE);
                    break; // IDM_DISABLE_DIAGNOSTIC_MODE


                case IDM_ALLOCATE_ADDRESS_RANGE:

                    w1394_AllocateAddressRange(g_hWndEdit, SelectedDevice);

                    break; // IDM_ALLOCATE_ADDRESS_RANGE

                case IDM_FREE_ADDRESS_RANGE:

                    w1394_FreeAddressRange(g_hWndEdit, SelectedDevice);

                    break; // IDM_FREE_ADDRESS_RANGE

                case IDM_ASYNC_READ:

                    w1394_AsyncRead(g_hWndEdit, SelectedDevice);

                    break; // IDM_ASYNC_READ

                case IDM_ASYNC_WRITE:

                    w1394_AsyncWrite(g_hWndEdit, SelectedDevice);

                    break; // IDM_ASYNC_WRITE

                case IDM_ASYNC_LOCK:

                    w1394_AsyncLock(g_hWndEdit, SelectedDevice);

                    break; // IDM_ASYNC_LOCK

                case IDM_ASYNC_STREAM:

                    w1394_AsyncStream(g_hWndEdit, SelectedDevice);

                    break; // IDM_ASYNC_STREAM

                case IDM_ASYNC_START_LOOPBACK:

                    w1394_AsyncStartLoopback(g_hWndEdit, SelectedDevice, &asyncLoopbackParams);

                    break; // IDM_ASYNC_LOOPBACK

                case IDM_ASYNC_STOP_LOOPBACK:

                    w1394_AsyncStopLoopback(g_hWndEdit, &asyncLoopbackParams);

                    break; // IDM_ASYNC_LOOPBACK


                case IDM_ASYNC_STREAM_START_LOOPBACK:

                    w1394_AsyncStreamStartLoopback(g_hWndEdit, SelectedDevice, &streamLoopbackParams);

                    break; // IDM_ASYNC_STREAM_START_LOOPBACK

                case IDM_ASYNC_STREAM_STOP_LOOPBACK:

                    w1394_AsyncStreamStopLoopback(g_hWndEdit, &streamLoopbackParams);

                    break; // IDM_ASYNC_STREAM_STOP_LOOPBACK
                    
                case IDM_ISOCH_ALLOCATE_BANDWIDTH:

                    w1394_IsochAllocateBandwidth(g_hWndEdit, SelectedDevice);

                    break; // IDM_ISOCH_ALLOCATE_BANDWIDTH

                case IDM_ISOCH_ALLOCATE_CHANNEL:

                    w1394_IsochAllocateChannel(g_hWndEdit, SelectedDevice);

                    break; // IDM_ISOCH_ALLOCATE_CHANNEL

                case IDM_ISOCH_ALLOCATE_RESOURCES:

                    w1394_IsochAllocateResources(g_hWndEdit, SelectedDevice);

                    break; // IDM_ISOCH_ALLOCATE_RESOURCES

                case IDM_ISOCH_ATTACH_BUFFERS:

                    w1394_IsochAttachBuffers(g_hWndEdit, SelectedDevice);

                    break; // IDM_ISOCH_ATTACH_BUFFERS

                case IDM_ISOCH_DETACH_BUFFERS:

                    w1394_IsochDetachBuffers(g_hWndEdit, SelectedDevice);

                    break; // IDM_ISOCH_DETACH_BUFFERS

                case IDM_ISOCH_FREE_BANDWIDTH:

                    w1394_IsochFreeBandwidth(g_hWndEdit, SelectedDevice);

                    break; // IDM_ISOCH_FREE_BANDWIDTH

                case IDM_ISOCH_FREE_CHANNEL:

                    w1394_IsochFreeChannel(g_hWndEdit, SelectedDevice);

                    break; // IDM_ISOCH_FREE_CHANNEL

                case IDM_ISOCH_FREE_RESOURCES:

                    w1394_IsochFreeResources(g_hWndEdit, SelectedDevice);

                    break; // IDM_ISOCH_FREE_RESOURCES

                case IDM_ISOCH_LISTEN:

                    w1394_IsochListen(g_hWndEdit, SelectedDevice);

                    break; // IDM_ISOCH_LISTEN

                case IDM_ISOCH_QUERY_CURRENT_CYCLE_TIME:

                    w1394_IsochQueryCurrentCycleTime(g_hWndEdit, SelectedDevice);

                    break; // IDM_ISOCH_QUERY_CURRENT_CYCLE_TIME

                case IDM_ISOCH_QUERY_RESOURCES:

                    w1394_IsochQueryResources(g_hWndEdit, SelectedDevice);

                    break; // IDM_ISOCH_QUERY_RESOURCES

                case IDM_ISOCH_SET_CHANNEL_BANDWIDTH:

                    w1394_IsochSetChannelBandwidth(g_hWndEdit, SelectedDevice);

                    break; // IDM_ISOCH_SET_CHANNEL_BANDWIDTH

                case IDM_ISOCH_STOP:

                    w1394_IsochStop(g_hWndEdit, SelectedDevice);

                    break; // IDM_ISOCH_STOP

                case IDM_ISOCH_TALK:

                    w1394_IsochTalk(g_hWndEdit, SelectedDevice);

                    break; // IDM_ISOCH_TALK

                case IDM_ISOCH_START_LOOPBACK:

                    w1394_IsochStartLoopback(g_hWndEdit, SelectedDevice, &isochLoopbackParams);

                    break; // IDM_ISOCH_START_LOOPBACK

                case IDM_ISOCH_STOP_LOOPBACK:

                    w1394_IsochStopLoopback(g_hWndEdit, &isochLoopbackParams);

                    break; // IDM_ISOCH_STOP_LOOPBACK

                case IDM_BUS_RESET:

                    w1394_BusReset(g_hWndEdit, SelectedDevice);

                    break; // IDM_BUS_RESET

                case IDM_GET_GENERATION_COUNT:

                    w1394_GetGenerationCount(g_hWndEdit, SelectedDevice);

                    break; // IDM_GET_GENERATION_COUNT

                case IDM_GET_LOCAL_HOST_INFORMATION:

                    w1394_GetLocalHostInfo(g_hWndEdit, SelectedDevice);

                    break; // IDM_GET_LOCAL_HOST_INFORMATION


                case IDM_GET_ADDRESS_FROM_DEVICE_OBJECT:

                    w1394_Get1394AddressFromDeviceObject(g_hWndEdit, SelectedDevice);

                    break; // IDM_GET_ADDRESS_FROM_DEVICE_OBJECT

                case IDM_CONTROL:

                    w1394_Control(g_hWndEdit, SelectedDevice);

                    break; // IDM_CONTROL

                case IDM_GET_MAX_SPEED_BETWEEN_DEVICES:

                    w1394_GetMaxSpeedBetweenDevices(g_hWndEdit, SelectedDevice);

                    break; // IDM_GET_MAX_SPEED_BETWEEN_DEVICES

                case IDM_GET_CONFIGURATION_INFORMATION:

                    w1394_GetConfigurationInfo(g_hWndEdit, SelectedDevice);

                    break; // IDM_GET_CONFIGURATION_INFORMATION

                case IDM_SET_DEVICE_XMIT_PROPERTIES:

                    w1394_SetDeviceXmitProperties(g_hWndEdit, SelectedDevice);

                    break; // IDM_SET_DEVICE_XMIT_PROPERTIES

                case IDM_SEND_PHY_CONFIG_PACKET:

                    w1394_SendPhyConfigPacket(g_hWndEdit, SelectedDevice);

                    break; // IDM_SEND_PHY_CONFIG_PACKET

                case IDM_BUS_RESET_NOTIFICATION:

                    w1394_BusResetNotification(g_hWndEdit, SelectedDevice);

                    break; // IDM_BUS_RESET_NOTIFICATION

                case IDM_SET_LOCAL_HOST_PROPERTIES:

                    w1394_SetLocalHostInfo(g_hWndEdit, SelectedDevice);

                    break; // IDM_SET_LOCAL_HOST_PROPERTIES

                default:
                    break; // default
            }
            break; // WM_COMMAND

        case NOTIFY_DEVICE_CHANGE:
            TRACE(TL_TRACE, (g_hWndEdit, "NOTIFY_DEVICE_CHANGE\r\n"));

            GetDeviceList(&DeviceData);
            GetVirtualDeviceList(&VirtDeviceData);

            TRACE(TL_TRACE, (g_hWndEdit, "number Diagnostic Devices = 0x%x\r\n", DeviceData.numDevices));
            TRACE(TL_TRACE, (g_hWndEdit, "number Virtual Devices = 0x%x\r\n", VirtDeviceData.numDevices));

            for (i=0;i<DeviceData.numDevices;i++) {

                TRACE(TL_TRACE, (g_hWndEdit, "DeviceName[0x%x] = %s\r\n", i, DeviceData.deviceList[i].DeviceName));
            }

            for (i=0;i<VirtDeviceData.numDevices;i++) {

                TRACE(TL_TRACE, (g_hWndEdit, "DeviceName[0x%x] = %s\r\n", i, VirtDeviceData.deviceList[i].DeviceName));
            }

            if (!SelectedDevice && DeviceData.numDevices) {

                SelectedDevice = DeviceData.deviceList[0].DeviceName;
                TRACE(TL_TRACE, (g_hWndEdit, "Selected Device = %s\r\n", SelectedDevice));
            }
            if (!SelectedDevice && VirtDeviceData.numDevices) {

                SelectedDevice = VirtDeviceData.deviceList[0].DeviceName;
                TRACE(TL_TRACE, (g_hWndEdit, "Selected Device = %s\r\n", SelectedDevice));
            }
            
            break; // NOTIFY_DEVICE_CHANGE

        case NOTIFY_BUS_RESET:
            TRACE(TL_TRACE, (g_hWndEdit, "BUS RESET!!!\r\n"));
            break; // NOTIFY_BUS_RESET

        default:
            break;
    } // switch iMsg

    return DefWindowProc(hWnd, iMsg, wParam, lParam);
} // w1394_AppWndProc

int WINAPI
WinMain(
    HINSTANCE   hInstance,
    HINSTANCE   hPrevInstance,
    PSTR        szCmdLine,
    int         iCmdShow
    )
/*++

Routine Description:

    Entry point for app. Registers class, creates window.

--*/
{
    CHAR        szAppClassName[] = "w1394_AppClass";
    CHAR        szTitleBar[] = "Win1394 Application";
    MSG         Msg;
    WNDCLASSEX  WndClassEx;
    HWND        hWnd;

    g_hInstance = hInstance;

    // main window app...
    WndClassEx.cbSize = sizeof(WNDCLASSEX);
    WndClassEx.style = CS_DBLCLKS | CS_BYTEALIGNWINDOW | CS_GLOBALCLASS;
    WndClassEx.lpfnWndProc = w1394_AppWndProc;
    WndClassEx.cbClsExtra = 0;
    WndClassEx.cbWndExtra = 0;
    WndClassEx.hInstance = g_hInstance;
    WndClassEx.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_APP_ICON));
    WndClassEx.hIconSm = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_APP_ICON));
    WndClassEx.hCursor = NULL;
    WndClassEx.hbrBackground = (HBRUSH)COLOR_BACKGROUND;
    WndClassEx.lpszMenuName = "AppMenu";
    WndClassEx.lpszClassName = szAppClassName;

    RegisterClassEx( &WndClassEx );

    hWnd = CreateWindowEx( WS_EX_WINDOWEDGE | WS_EX_ACCEPTFILES,
                           szAppClassName,
                           szTitleBar,
                           WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN,
                           CW_USEDEFAULT,
                           CW_USEDEFAULT,
                           CW_USEDEFAULT,
                           CW_USEDEFAULT,
                           NULL,
                           NULL,
                           g_hInstance,
                           NULL
                           );

    ShowWindow(hWnd, iCmdShow);

    while (GetMessage(&Msg, NULL, 0, 0)) {
        TranslateMessage(&Msg);
        DispatchMessage(&Msg);
    }

    return (int)(Msg.wParam);
} // WinMain



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -