// 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; }
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; }
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); };
// 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; }