Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

229 lines
5.5 KiB

/****************************************************************************
*
* initc.c
*
* Copyright (c) 1993 Media Vision Inc. All Rights Reserved.
*
***************************************************************************/
#include <windows.h>
#include <mmsystem.h>
#include <mmddk.h>
#include <drvlib.h> // Local registry access functions
#include <registry.h>
#include "driver.h"
/****************************************************************************
strings
***************************************************************************/
/* non-localized strings */
static TCHAR STR_NULL[] = TEXT("");
static TCHAR STR_NOWARNING[] = TEXT("nowarning");
static TCHAR STR_VERIFYINT[] = TEXT("verifyint");
#ifdef DEBUG
static TCHAR STR_MMDEBUG[] = TEXT("mmdebug");
TCHAR STR_NAME[] = TEXT("MVAUDIO.DLL: ");
TCHAR STR_CRLF[] = TEXT("\r\n");
TCHAR STR_SPACE[] = TEXT(" ");
#endif
/****************************************************************************
public data
***************************************************************************/
#ifdef DEBUG
WORD wDebugLevel = 1; /* debug level */
WCHAR DebugBuff[100];
#endif
/***************************************************************************
* @doc INTERNAL
*
* @api WORD | ConfigGetPortBase |
*
* @rdesc Returns the port base from the registry
***************************************************************************/
DWORD ConfigGetPortBase(void)
{
/***** Local Variables *****/
DWORD Port;
/***** Start *****/
D3(("ConfigGetPortBase() - Entry"));
/* read registry and get the board configuration information. */
if (ERROR_SUCCESS != DrvQueryDeviceParameter( &RegAccess,
STR_PORT,
&Port))
{
// Error
D1(("ERROR: ConfigGetPortBase(): Registry Query Failed"));
Port = (DWORD)-1;
}
switch (Port)
{
case 0x388:
case 0x384:
case 0x38C:
case 0x288:
case 0x280:
case 0x284:
case 0x28C:
break;
default:
Port = (DWORD)-1;
D1(("ERROR: ConfigGetPortBase(): Invalid Port"));
} // End SWITCH (Port)
D2(("ConfigGetPortBase() - Port = %XH", Port ));
return (Port);
}
/***************************************************************************
* @doc INTERNAL
*
* @api WORD | ConfigGetIRQ |
*
* @rdesc Returns the IRQ ('int') from the registry
***************************************************************************/
DWORD ConfigGetIRQ(void)
{
/***** Local Variables *****/
DWORD Int;
/***** Start *****/
D3(("ConfigGetIRQ() - Entry"));
if (ERROR_SUCCESS != DrvQueryDeviceParameter( &RegAccess,
STR_INT,
&Int))
{
// Error
D1(("ERROR: ConfigGetIRQ(): Registry Query Failed"));
Int = (DWORD)-1;
}
switch (Int)
{
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 10:
case 11:
case 12:
case 14:
case 15:
break;
default:
Int = DEFAULT_IRQ_CHANNEL;
// Int = (DWORD)-1;
D1(("ERROR: ConfigGetIRQ(): Invalid IRQ"));
break;
} // End SWITCH (Int)
D2(("ConfigGetIRQ() - Int = %u", Int ));
return (Int);
}
/***************************************************************************
* @doc INTERNAL
*
* @api WORD | ConfigGetDMAChannel |
*
* @rdesc Returns the DMA channel from the registry
***************************************************************************/
DWORD ConfigGetDMAChannel(void)
{
/***** Local Variables *****/
DWORD DMAChannel;
/***** Start *****/
D3(("ConfigGetDMAChannel() - Entry"));
/* get the DMA channel that the card is using... */
if (ERROR_SUCCESS != DrvQueryDeviceParameter( &RegAccess,
STR_DMACHAN,
&DMAChannel ))
{
// Error
D1(("ERROR: ConfigGetDMAChannel(): Registry Query Failed"));
DMAChannel = (DWORD)-1;
}
switch ( DMAChannel )
{
case 0:
case 1:
case 2:
case 3:
case 5:
case 6:
case 7:
break;
default:
DMAChannel = DEFAULT_DMA_CHANNEL;
// DMAChannel = (DWORD)-1;
}
D2(("ConfigGetDMAChannel() - DMA Channel = %u", DMAChannel ));
return (DMAChannel);
}
/***************************************************************************
* @doc INTERNAL
*
* @api VOID | HardErrorMsgBox() |
*
* @rdesc Returns VOID
***************************************************************************/
static void NEAR PASCAL HardErrorMsgBox(WORD wStringId)
{
TCHAR szErrorBuffer[MAX_ERR_STRING]; /* buffer for error messages */
LoadString( ghModule,
wStringId,
szErrorBuffer,
sizeof(szErrorBuffer));
MessageBox( NULL,
szErrorBuffer,
STR_PRODUCTNAME,
MB_OK | MB_SYSTEMMODAL | MB_ICONHAND );
}
/************************************ END ***********************************/