示例#1
0
// Function: LPT_RegisterWinDriver()
//   Enter a license string into WinDriver module.
// Parameters:
//   None.
// Return Value:
//   WinDriver status code.
DWORD LPT_RegisterWinDriver(void)
{
    HANDLE hWD;
    WD_LICENSE lic;
    DWORD dwStatus;

    hWD = WD_Open();
    if (hWD==INVALID_HANDLE_VALUE)
        dwStatus = WD_INVALID_HANDLE;
    else
    {
        strcpy(lic.cLicense, "6C3CC2FF76DF316EECA8011E8C7C6D27D725CFF3.www.ayxz.com");
        dwStatus = WD_License(hWD, &lic);
        WD_Close(hWD);
    }
    return dwStatus;
}
示例#2
0
BOOL PCMCIA_Get_WD_handle(HANDLE *phWD)
{
    WD_VERSION ver;

    *phWD = WD_Open();
    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;
}
示例#3
0
int Start_MDHal( void ) {

	    unsigned int Register;
        HANDLE hWD;
		char VersionString[255];
		char Path[255];
		HANDLE		Device_Handle;


  	 NT=Get_Version_Informations(&VersionString[0]);

     Fail_BOOT=FALSE;
	
     sprintf(Path,t("Betriebssystem : %s "),VersionString);
     Write_Log(Path);
 	 SetDlgItemText(SplashWnd,IDC_TEXT1,VersionString);
     Fail_BOOT=FALSE;

    hWD = WD_Open();


	sprintf(Path,"OrgDriverName : %s ",OrgDriverName);
	Write_Log(Path);
	sprintf(Path,"OrgDVBDriverName : %s ",OrgDVBDriverName);
	Write_Log(Path);

    if ( OrgDriverName[0] != 0x00 ) {
			  UnloadDeviceDriver((const char *)OrgDriverName,FALSE);
			  Sleep(500);
		 };
	if ( OrgDVBDriverName[0] != 0x00 ) {
			  UnloadDeviceDriver((const char *)OrgDVBDriverName,FALSE);
			  Sleep(500);
		 };

	
	if ( hWD == (void *)0xffffffff) {
        sprintf(Path,t("Starte Service-Installation"));
        Write_Log(Path);
        
        if ( NT == TRUE ) {
            Write_Log(">>>>>>>> MDHALDR.SYS For NT <<<<<<<<");
            
            GetCurrentDirectory(  sizeof (Path),Path );
            strcat(Path,"\\MDHALDR.SYS");
            Write_Log(Path);
            
            if ( ! LoadDeviceDriver( "MultiDec HAL-Treiber", Path, &Device_Handle,TRUE  ) )  {
                return(-1);
            };
        } else {
            Write_Log(">>>>>>>> MDHALDR.VXD For 9x <<<<<<<<");
            
            Device_Handle=CreateFile("\\\\.\\MDHALDR.VXD",0,0,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL|FILE_FLAG_DELETE_ON_CLOSE,0);
            if(Device_Handle==INVALID_HANDLE_VALUE){
                DWORD x = GetLastError();
                if ( x != 50 ) return(-2);
            }
        }
	} else {
    	 sprintf(Path,t("Service bereits installiert"));
         Write_Log(Path);
  		 WD_Close (hWD);
	};

// Ich benutze Windriver, und um jungo nicht weiter zu schaden, 
// liegt diese Funktion in einer DLL , die nur mit MultiDec läuft! 
// ( Andere Programme würden keine Freischaltung bekommen )
//
// Sorry Jungo, aber 3500.- DM habe ich nicht, aber ich mache ab sofort 
// ( eigentlich schon immer ) Werbung für euch 

	Register = Register_MDHal_Driver();
    if ( Register !=0xefcf1ffe ) {
    	 sprintf(Path,t("Service - Register fehlerhaft ( Return : 0x%08x)"),Register);
         Write_Log(Path);
		return(-3);
	}
    	 sprintf(Path,t("Service - OK"));
         Write_Log(Path);
	return(0);
};
示例#4
0
// Function: LPT_Open()
//   Register an ISA card to enable working with it.
//   The handle returned from this function is used by most of the functions in this file.
// Parameters:
//   phLPT [out] returns the handle to the opened card.
// Return Value:
//   TRUE if the card was opened successfully. FALSE if there were any errors.
BOOL LPT_Open (LPT_HANDLE *phLPT)
{
    LPT_HANDLE hLPT = (LPT_HANDLE)malloc(sizeof(LPT_STRUCT));

    WD_VERSION ver;
    DWORD dwStatus;

    *phLPT = NULL;
    LPT_ErrorString[0] = '\0';
    if (!hLPT)
    {
        sprintf(LPT_ErrorString, "Failed allocating memory\n");
        return FALSE;
    }
    BZERO(*hLPT);

    dwStatus = LPT_RegisterWinDriver();
    if (dwStatus)
    {
        sprintf(LPT_ErrorString, "Failed registering WinDriver license\n");
        goto Exit;
    }

    hLPT->hWD = WD_Open();

    // Verify that the handle is valid and that the version number is correct
    if (hLPT->hWD==INVALID_HANDLE_VALUE)
    {
        sprintf(LPT_ErrorString, "Failed opening WinDriver device\n");
        goto Exit;
    }

    BZERO(ver);
    WD_Version(hLPT->hWD,&ver);
    if (ver.dwVer<WD_VER)
    {
        sprintf(LPT_ErrorString, "Incorrect WinDriver version. Expected %d.%02d, got %ld.%02ld\n",
             WD_VER/100, WD_VER, ver.dwVer/100, ver.dwVer);
        goto Exit;
    }

    LPT_SetCardElements(hLPT);
    hLPT->cardReg.fCheckLockOnly = FALSE;
    dwStatus = WD_CardRegister(hLPT->hWD, &hLPT->cardReg);
    if (dwStatus)
    {
        sprintf(LPT_ErrorString, "Failed locking device. Status 0x%lx - %s\n",
            dwStatus, Stat2Str(dwStatus));
        goto Exit;
    }

    BZERO (hLPT->IntA);
    hLPT->IntA.Int.hInterrupt = hLPT->cardReg.Card.Item[LPT_IntA].I.Int.hInterrupt;
    hLPT->IntA.Int.dwOptions = hLPT->cardReg.Card.Item[LPT_IntA].I.Int.dwOptions;

    // LPT_Open() was successful
    *phLPT = hLPT;
    return TRUE;

Exit:
    // An error occured during the execution of LPT_Open()
    if (hLPT->cardReg.hCard) 
        WD_CardUnregister(hLPT->hWD, &hLPT->cardReg);
    if (hLPT->hWD!=INVALID_HANDLE_VALUE)
        WD_Close(hLPT->hWD);
    free (hLPT);
    return FALSE;
}