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

📄 isapnp_diag_lib.c

📁 adlink 6760主控板上控制plx pci slave的驱动
💻 C
字号:
////////////////////////////////////////////////////////////////
// File - ISAPNP_DIAG_LIB.C
//
// Utility functions for printing card information,
// detecting PCI cards, and accessing PCI configuration
// registers.
// 
////////////////////////////////////////////////////////////////

#include "../../include/windrvr.h"
#ifdef _USE_SPECIFIC_KERNEL_DRIVER_
    #undef WD_Open
    #define WD_Open WD_OpenKernelHandle
    #if defined(UNIX)
        #undef WD_FUNCTION
        #define WD_FUNCTION(wFuncNum,h,pParam,dwSize,fWait) ((ULONG) ioctl((int)(h), wFuncNum, pParam))
    #endif
#endif
#include "print_struct.h"
#include <stdio.h>
#include "isapnp_diag_lib.h"

BOOL ISAPNP_Get_WD_handle(HANDLE *phWD)
{
    WD_VERSION ver;

    *phWD = INVALID_HANDLE_VALUE;
    *phWD = WD_Open();

    // Check whether handle is valid and version OK
    if (*phWD==INVALID_HANDLE_VALUE) 
    {
        printf("Failed opening " WD_PROD_NAME " device\n");
        return FALSE;
    }

    BZERO(ver);
    WD_Version(*phWD,&ver);
    if (ver.dwVer<WD_VER) 
    {
        printf("Incorrect " WD_PROD_NAME " version\n");
        WD_Close (*phWD);
        *phWD = INVALID_HANDLE_VALUE;
        return FALSE;
    }

    return TRUE;
}

void ISAPNP_Print_all_cards_info()
{
    HANDLE hWD;
    WD_ISAPNP_SCAN_CARDS scanCards;
    WD_ISAPNP_CARD_INFO cardInfo;
    DWORD i, j;

    if (!ISAPNP_Get_WD_handle (&hWD)) return;

    printf ("ISA PnP bus scan:\n\n");
    BZERO(scanCards);
    WD_IsapnpScanCards (hWD, &scanCards);
    for (i=0; i<scanCards.dwCards; i++)
    {
        printf ("Card %d: %s\n", i, scanCards.Card[i].cIdent);
        for (j=0; j<scanCards.Card[i].dwLogicalDevices; j++)
        {
            BZERO(cardInfo);
            cardInfo.cardId = scanCards.Card[i].cardId;
            cardInfo.dwLogicalDevice = j;
            WD_IsapnpGetCardInfo(hWD, &cardInfo);
            if (strlen(cardInfo.cIdent))
                printf ("Device %d: %s, ", j, cardInfo.cIdent);
            printf ("Vendor ID: %s, ", scanCards.Card[i].cardId.cVendor );
            printf ("Serial number: %x\n", scanCards.Card[i].cardId.dwSerial );
            WD_CARD_print(&cardInfo.Card, "   ");
            printf ("\n");
        }
    }
    WD_Close (hWD);
}

⌨️ 快捷键说明

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