Beispiel #1
0
BOOL YGFSMonSaveRegData(UCHAR ucDrive,PCHAR pRegPath,PCHAR pValue,DWORD dwType,UCHAR *pData,DWORD dwDataLen)
{
	char szPath[MAX_PATH],szFile[MAX_PATH];
	DWORD hFile,dwAction;
	REGDATAHEAD RegHead;

	RegHead.dwType = dwType;
	RegHead.dwDataLen = dwDataLen;
    _lstrcpyn(szPath, "C:\\YGReg\\",_lstrlen("C:\\YGReg\\")+1);
	szPath[0] = ucDrive;
	YGFSMonConvertRegPath(pRegPath,TRUE);
	strcat(szPath,pRegPath);
	if (CreateDirAnsi(szPath))
	{
		strcat(szPath,"\\");
		_lstrcpyn(szFile,(pValue&&pValue[0])?pValue:"(default)",_lstrlen((pValue&&pValue[0])?pValue:"(default)")+1);
		YGFSMonConvertRegPath(szFile,FALSE);
		strcat(szPath,szFile);
		if (!R0_OpenCreateFile(FALSE, ACCESS_READWRITE | SHARE_COMPATIBILITY,
							   0,ACTION_OPENALWAYS, 0, szPath, &hFile,&dwAction))
		{
			R0_WriteFile(FALSE,hFile,sizeof(REGDATAHEAD),0,(UCHAR *)&RegHead,&dwAction);
			R0_WriteFile(FALSE,hFile,dwDataLen,sizeof(REGDATAHEAD),pData,&dwAction);
			R0_CloseFile(hFile);
		}
		else _asm int 3
	}
	else _asm int 3
Beispiel #2
0
/****************************************************************************
REMARKS:
VxD implementation of the ANSI C fclose function.
****************************************************************************/
int fclose(
    FILE *f)
{
    WORD error;

    if (initComplete)
	R0_CloseFile((HANDLE)f->handle,&error);
    else
	i_close(f->handle);
    PM_free(f);
    return 0;
}