本文整理汇总了C++中RTStrPrintf函数 的典型用法代码示例。如果您正苦于以下问题:C++ RTStrPrintf函数的具体用法?C++ RTStrPrintf怎么用?C++ RTStrPrintf使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了RTStrPrintf函数 的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: vboxNetNATLogInit
static int vboxNetNATLogInit(int argc, char **argv)
{
size_t cch;
int rc;
char szHome[RTPATH_MAX];
rc = com::GetVBoxUserHomeDirectory(szHome, sizeof(szHome), false);
if (RT_FAILURE(rc))
return rc;
const char *pcszNetwork = NULL;
// XXX: This duplicates information from VBoxNetBaseService.cpp.
// Perhaps option definitions should be exported as public static
// member of VBoxNetBaseService?
static const RTGETOPTDEF s_aOptions[] = {
{ "--network", 'n', RTGETOPT_REQ_STRING }
};
RTGETOPTSTATE GetState;
RTGetOptInit(&GetState, argc, argv, s_aOptions, RT_ELEMENTS(s_aOptions), 1,
RTGETOPTINIT_FLAGS_NO_STD_OPTS);
RTGETOPTUNION ValueUnion;
int ch;
while ((ch = RTGetOpt(&GetState, &ValueUnion)))
{
if (ch == 'n')
{
pcszNetwork = ValueUnion.psz;
break;
}
}
if (pcszNetwork == NULL)
{
return VERR_MISSING;
}
char szNetwork[RTPATH_MAX];
rc = RTStrCopy(szNetwork, sizeof(szNetwork), pcszNetwork);
if (RT_FAILURE(rc))
{
return rc;
}
// sanitize network name to be usable as a path component
for (char *p = szNetwork; *p != '\0'; ++p)
{
if (RTPATH_IS_SEP(*p))
{
*p = '_';
}
}
char szLogFile[RTPATH_MAX];
cch = RTStrPrintf(szLogFile, sizeof(szLogFile),
"%s%c%s.log", szHome, RTPATH_DELIMITER, szNetwork);
if (cch >= sizeof(szLogFile))
{
return VERR_BUFFER_OVERFLOW;
}
// sanitize network name some more to be usable as environment variable
for (char *p = szNetwork; *p != '\0'; ++p)
{
if (*p != '_'
&& (*p < '0' || '9' < *p)
&& (*p < 'a' || 'z' < *p)
&& (*p < 'A' || 'Z' < *p))
{
*p = '_';
}
}
char szEnvVarBase[128];
cch = RTStrPrintf(szEnvVarBase, sizeof(szEnvVarBase),
"VBOXNET_%s_RELEASE_LOG", szNetwork);
if (cch >= sizeof(szEnvVarBase))
{
return VERR_BUFFER_OVERFLOW;
}
char szError[RTPATH_MAX + 128];
rc = com::VBoxLogRelCreate("NAT Network",
szLogFile,
RTLOGFLAGS_PREFIX_TIME_PROG,
"all all.restrict -default.restrict",
szEnvVarBase,
RTLOGDEST_FILE,
32768 /* cMaxEntriesPerGroup */,
0 /* cHistory */,
0 /* uHistoryFileTime */,
0 /* uHistoryFileSize */,
szError, sizeof(szError));
return rc;
}
开发者ID:zBMNForks, 项目名称:virtualbox-org-svn-vbox-trunk, 代码行数:97, 代码来源:VBoxNetLwipNAT.cpp
示例2: main
int main(int argc, char **argv)
{
RTTEST hTest;
int rc = RTTestInitAndCreate("tstRTUuid", &hTest);
if (rc)
return rc;
RTTestBanner(hTest);
#define CHECK_RC() \
do { if (RT_FAILURE(rc)) { RTTestFailed(hTest, "line %d: rc=%Rrc", __LINE__, rc); } } while (0)
RTTestSub(hTest, "RTUuidClear & RTUuisIsNull");
RTUUID UuidNull;
rc = RTUuidClear(&UuidNull); CHECK_RC();
RTTEST_CHECK(hTest, RTUuidIsNull(&UuidNull));
RTTEST_CHECK(hTest, RTUuidCompare(&UuidNull, &UuidNull) == 0);
RTTestSub(hTest, "RTUuidCreate");
RTUUID Uuid;
rc = RTUuidCreate(&Uuid); CHECK_RC();
RTTEST_CHECK(hTest, !RTUuidIsNull(&Uuid));
RTTEST_CHECK(hTest, RTUuidCompare(&Uuid, &Uuid) == 0);
RTTEST_CHECK(hTest, RTUuidCompare(&Uuid, &UuidNull) > 0);
RTTEST_CHECK(hTest, RTUuidCompare(&UuidNull, &Uuid) < 0);
RTTestSub(hTest, "RTUuidToStr");
char sz[RTUUID_STR_LENGTH];
rc = RTUuidToStr(&Uuid, sz, sizeof(sz)); CHECK_RC();
RTTEST_CHECK(hTest, strlen(sz) == RTUUID_STR_LENGTH - 1);
RTTestPrintf(hTest, RTTESTLVL_INFO, "UUID=%s\n", sz);
RTTestSub(hTest, "RTUuidFromStr");
RTUUID Uuid2;
rc = RTUuidFromStr(&Uuid2, sz); CHECK_RC();
RTTEST_CHECK(hTest, RTUuidCompare(&Uuid, &Uuid2) == 0);
char *psz = (char *)RTTestGuardedAllocTail(hTest, RTUUID_STR_LENGTH);
if (psz)
{
RTStrPrintf(psz, RTUUID_STR_LENGTH, "%s", sz);
RTTESTI_CHECK_RC(RTUuidFromStr(&Uuid2, psz), VINF_SUCCESS);
RTTEST_CHECK(hTest, RTUuidCompare(&Uuid, &Uuid2) == 0);
for (unsigned off = 1; off < RTUUID_STR_LENGTH; off++)
{
char *psz2 = psz + off;
RTStrPrintf(psz2, RTUUID_STR_LENGTH - off, "%s", sz);
RTTESTI_CHECK_RC(RTUuidFromStr(&Uuid2, psz2), VERR_INVALID_UUID_FORMAT);
}
RTTestGuardedFree(hTest, psz);
}
RTUuidClear(&Uuid2);
char sz2[RTUUID_STR_LENGTH + 2];
RTStrPrintf(sz2, sizeof(sz2), "{%s}", sz);
rc = RTUuidFromStr(&Uuid2, sz2); CHECK_RC();
RTTEST_CHECK(hTest, RTUuidCompare(&Uuid, &Uuid2) == 0);
psz = (char *)RTTestGuardedAllocTail(hTest, RTUUID_STR_LENGTH + 2);
if (psz)
{
RTStrPrintf(psz, RTUUID_STR_LENGTH + 2, "{%s}", sz);
RTTESTI_CHECK_RC(RTUuidFromStr(&Uuid2, psz), VINF_SUCCESS);
RTTEST_CHECK(hTest, RTUuidCompare(&Uuid, &Uuid2) == 0);
for (unsigned off = 1; off < RTUUID_STR_LENGTH + 2; off++)
{
char *psz2 = psz + off;
RTStrPrintf(psz2, RTUUID_STR_LENGTH + 2 - off, "{%s}", sz);
RTTESTI_CHECK_RC(RTUuidFromStr(&Uuid2, psz2), VERR_INVALID_UUID_FORMAT);
}
RTTestGuardedFree(hTest, psz);
}
RTTestSub(hTest, "RTUuidToUtf16");
RTUTF16 wsz[RTUUID_STR_LENGTH];
rc = RTUuidToUtf16(&Uuid, wsz, sizeof(wsz)); CHECK_RC();
RTTEST_CHECK(hTest, RTUtf16Len(wsz) == RTUUID_STR_LENGTH - 1);
RTTestSub(hTest, "RTUuidFromUtf16");
rc = RTUuidFromUtf16(&Uuid2, wsz); CHECK_RC();
RTTEST_CHECK(hTest, RTUuidCompare(&Uuid, &Uuid2) == 0);
RTUTF16 *pwsz;
rc = RTStrToUtf16(sz2, &pwsz);
RTTEST_CHECK(hTest, rc == VINF_SUCCESS);
if (RT_SUCCESS(rc))
{
RTTESTI_CHECK_RC(RTUuidFromUtf16(&Uuid2, pwsz), VINF_SUCCESS);
RTTEST_CHECK(hTest, RTUuidCompare(&Uuid, &Uuid2) == 0);
RTUTF16 *pwsz2 = (RTUTF16*)RTTestGuardedAllocTail(hTest, 2 * (RTUUID_STR_LENGTH + 2));
if (pwsz2)
{
memcpy(pwsz2, pwsz, 2 * (RTUUID_STR_LENGTH + 2));
RTTESTI_CHECK_RC(RTUuidFromUtf16(&Uuid2, pwsz2), VINF_SUCCESS);
RTTEST_CHECK(hTest, RTUuidCompare(&Uuid, &Uuid2) == 0);
for (unsigned off = 1; off < RTUUID_STR_LENGTH + 2; off++)
{
RTUTF16 *pwsz3 = pwsz2 + off;
memcpy(pwsz3, pwsz, 2 * (RTUUID_STR_LENGTH + 1 - off));
//.........这里部分代码省略.........
开发者ID:leopucci, 项目名称:VirtualMonitor, 代码行数:101, 代码来源:tstRTUuid.cpp
示例3: DECLCALLBACK
/**
* @interface_method_impl(PDMINVRAM,pfnVarStoreSeqPut)
*/
DECLCALLBACK(int) drvNvram_VarStoreSeqPut(PPDMINVRAMCONNECTOR pInterface, int idxVariable,
PCRTUUID pVendorUuid, const char *pszName, size_t cchName,
uint32_t fAttributes, uint8_t const *pbValue, size_t cbValue)
{
PNVRAM pThis = RT_FROM_MEMBER(pInterface, NVRAM, INvramConnector);
int rc = VINF_SUCCESS;
if (pThis->fPermanentSave && pThis->pNvram)
{
char szExtraName[256];
size_t offValueNm = RTStrPrintf(szExtraName, sizeof(szExtraName) - 16,
NVRAM_CFGM_OVERLAY_PATH "/%04u/", idxVariable);
char szUuid[RTUUID_STR_LENGTH];
int rc2 = RTUuidToStr(pVendorUuid, szUuid, sizeof(szUuid)); AssertRC(rc2);
char szAttribs[32];
if (fAttributes != NVRAM_DEFAULT_ATTRIB)
RTStrPrintf(szAttribs, sizeof(szAttribs), "%#x", fAttributes);
else
szAttribs[0] = '\0';
char *pszValue = drvNvram_binaryToCfgmString(pbValue, cbValue);
if (pszValue)
{
const char *apszTodo[] =
{
"Name", pszName,
"Uuid", szUuid,
"Value", pszValue,
"Attribs", szAttribs,
};
for (unsigned i = 0; i < RT_ELEMENTS(apszTodo); i += 2)
{
if (!apszTodo[i + 1][0])
continue;
Assert(strlen(apszTodo[i]) < 16);
strcpy(szExtraName + offValueNm, apszTodo[i]);
try
{
HRESULT hrc = pThis->pNvram->getParent()->i_machine()->SetExtraData(Bstr(szExtraName).raw(),
Bstr(apszTodo[i + 1]).raw());
if (FAILED(hrc))
{
LogRel(("drvNvram_deleteVar: SetExtraData(%s,%s) returned %Rhrc\n", szExtraName, apszTodo[i + 1], hrc));
rc = Global::vboxStatusCodeFromCOM(hrc);
}
}
catch (...)
{
LogRel(("drvNvram_deleteVar: SetExtraData(%s,%s) threw exception\n", szExtraName, apszTodo[i + 1]));
rc = VERR_UNEXPECTED_EXCEPTION;
}
}
}
else
rc = VERR_NO_MEMORY;
RTMemFree(pszValue);
}
NOREF(cchName);
LogFlowFuncLeaveRC(rc);
return rc;
}
开发者ID:rickysarraf, 项目名称:virtualbox, 代码行数:68, 代码来源:Nvram.cpp
示例4: DECLCALLBACK
/**
* Callback to format non-standard format specifiers, employed by dbgcPrintfV
* and others.
*
* @returns The number of bytes formatted.
* @param pvArg Formatter argument.
* @param pfnOutput Pointer to output function.
* @param pvArgOutput Argument for the output function.
* @param ppszFormat Pointer to the format string pointer. Advance this till the char
* after the format specifier.
* @param pArgs Pointer to the argument list. Use this to fetch the arguments.
* @param cchWidth Format Width. -1 if not specified.
* @param cchPrecision Format Precision. -1 if not specified.
* @param fFlags Flags (RTSTR_NTFS_*).
* @param chArgSize The argument size specifier, 'l' or 'L'.
*/
static DECLCALLBACK(size_t) dbgcStringFormatter(void *pvArg, PFNRTSTROUTPUT pfnOutput, void *pvArgOutput,
const char **ppszFormat, va_list *pArgs, int cchWidth,
int cchPrecision, unsigned fFlags, char chArgSize)
{
NOREF(cchWidth); NOREF(cchPrecision); NOREF(fFlags); NOREF(chArgSize); NOREF(pvArg);
if (**ppszFormat != 'D')
{
(*ppszFormat)++;
return 0;
}
(*ppszFormat)++;
switch (**ppszFormat)
{
/*
* Print variable without range.
* The argument is a const pointer to the variable.
*/
case 'V':
{
(*ppszFormat)++;
PCDBGCVAR pVar = va_arg(*pArgs, PCDBGCVAR);
switch (pVar->enmType)
{
case DBGCVAR_TYPE_GC_FLAT:
return RTStrFormat(pfnOutput, pvArgOutput, NULL, 0, "%%%RGv", pVar->u.GCFlat);
case DBGCVAR_TYPE_GC_FAR:
return RTStrFormat(pfnOutput, pvArgOutput, NULL, 0, "%04x:%08x", pVar->u.GCFar.sel, pVar->u.GCFar.off);
case DBGCVAR_TYPE_GC_PHYS:
return RTStrFormat(pfnOutput, pvArgOutput, NULL, 0, "%%%%%RGp", pVar->u.GCPhys);
case DBGCVAR_TYPE_HC_FLAT:
return RTStrFormat(pfnOutput, pvArgOutput, NULL, 0, "%%#%RHv", (uintptr_t)pVar->u.pvHCFlat);
case DBGCVAR_TYPE_HC_PHYS:
return RTStrFormat(pfnOutput, pvArgOutput, NULL, 0, "#%%%%%RHp", pVar->u.HCPhys);
case DBGCVAR_TYPE_NUMBER:
return RTStrFormat(pfnOutput, pvArgOutput, NULL, 0, "%llx", pVar->u.u64Number);
case DBGCVAR_TYPE_STRING:
return dbgcStringOutputInQuotes(pfnOutput, pvArgOutput, '"', pVar->u.pszString, (size_t)pVar->u64Range);
case DBGCVAR_TYPE_SYMBOL:
return dbgcStringOutputInQuotes(pfnOutput, pvArgOutput, '\'', pVar->u.pszString, (size_t)pVar->u64Range);
case DBGCVAR_TYPE_UNKNOWN:
default:
return pfnOutput(pvArgOutput, "??", 2);
}
}
/*
* Print variable with range.
* The argument is a const pointer to the variable.
*/
case 'v':
{
(*ppszFormat)++;
PCDBGCVAR pVar = va_arg(*pArgs, PCDBGCVAR);
char szRange[32];
switch (pVar->enmRangeType)
{
case DBGCVAR_RANGE_NONE:
szRange[0] = '\0';
break;
case DBGCVAR_RANGE_ELEMENTS:
RTStrPrintf(szRange, sizeof(szRange), " L %llx", pVar->u64Range);
break;
case DBGCVAR_RANGE_BYTES:
RTStrPrintf(szRange, sizeof(szRange), " LB %llx", pVar->u64Range);
break;
}
switch (pVar->enmType)
{
case DBGCVAR_TYPE_GC_FLAT:
return RTStrFormat(pfnOutput, pvArgOutput, NULL, 0, "%%%RGv%s", pVar->u.GCFlat, szRange);
case DBGCVAR_TYPE_GC_FAR:
return RTStrFormat(pfnOutput, pvArgOutput, NULL, 0, "%04x:%08x%s", pVar->u.GCFar.sel, pVar->u.GCFar.off, szRange);
case DBGCVAR_TYPE_GC_PHYS:
return RTStrFormat(pfnOutput, pvArgOutput, NULL, 0, "%%%%%RGp%s", pVar->u.GCPhys, szRange);
case DBGCVAR_TYPE_HC_FLAT:
return RTStrFormat(pfnOutput, pvArgOutput, NULL, 0, "%%#%RHv%s", (uintptr_t)pVar->u.pvHCFlat, szRange);
case DBGCVAR_TYPE_HC_PHYS:
return RTStrFormat(pfnOutput, pvArgOutput, NULL, 0, "#%%%%%RHp%s", pVar->u.HCPhys, szRange);
case DBGCVAR_TYPE_NUMBER:
return RTStrFormat(pfnOutput, pvArgOutput, NULL, 0, "%llx%s", pVar->u.u64Number, szRange);
//.........这里部分代码省略.........
开发者ID:mutoso-mirrors, 项目名称:vbox, 代码行数:101, 代码来源:DBGCCmdHlp.cpp
示例5: DECLCALLBACK
static DECLCALLBACK(int) drvHostPulseAudioInitOut(PPDMIHOSTAUDIO pInterface,
PPDMAUDIOHSTSTRMOUT pHstStrmOut, PPDMAUDIOSTREAMCFG pCfg,
uint32_t *pcSamples)
{
AssertPtrReturn(pInterface, VERR_INVALID_POINTER);
AssertPtrReturn(pHstStrmOut, VERR_INVALID_POINTER);
AssertPtrReturn(pCfg, VERR_INVALID_POINTER);
/* pcSamples is optional. */
PDRVHOSTPULSEAUDIO pDrv = PDMIHOSTAUDIO_2_DRVHOSTPULSEAUDIO(pInterface);
PPULSEAUDIOSTREAM pThisStrmOut = (PPULSEAUDIOSTREAM)pHstStrmOut;
LogFlowFuncEnter();
pThisStrmOut->pDrainOp = NULL;
pThisStrmOut->SampleSpec.format = drvHostPulseAudioFmtToPulse(pCfg->enmFormat);
pThisStrmOut->SampleSpec.rate = pCfg->uHz;
pThisStrmOut->SampleSpec.channels = pCfg->cChannels;
/* Note that setting maxlength to -1 does not work on PulseAudio servers
* older than 0.9.10. So use the suggested value of 3/2 of tlength */
pThisStrmOut->BufAttr.tlength = (pa_bytes_per_second(&pThisStrmOut->SampleSpec)
* s_pulseCfg.buffer_msecs_out) / 1000;
pThisStrmOut->BufAttr.maxlength = (pThisStrmOut->BufAttr.tlength * 3) / 2;
pThisStrmOut->BufAttr.prebuf = -1; /* Same as tlength */
pThisStrmOut->BufAttr.minreq = -1; /* Pulse should set something sensible for minreq on it's own */
/* Note that the struct BufAttr is updated to the obtained values after this call! */
char achName[64];
RTStrPrintf(achName, sizeof(achName), "%.32s (out)", pDrv->pszStreamName);
int rc = drvHostPulseAudioOpen(false /* fIn */, achName, &pThisStrmOut->SampleSpec, &pThisStrmOut->BufAttr,
&pThisStrmOut->pStream);
if (RT_FAILURE(rc))
return rc;
PDMAUDIOSTREAMCFG streamCfg;
rc = drvHostPulseAudioPulseToFmt(pThisStrmOut->SampleSpec.format,
&streamCfg.enmFormat, &streamCfg.enmEndianness);
if (RT_FAILURE(rc))
{
LogRel(("PulseAudio: Cannot find audio output format %ld\n", pThisStrmOut->SampleSpec.format));
return rc;
}
streamCfg.uHz = pThisStrmOut->SampleSpec.rate;
streamCfg.cChannels = pThisStrmOut->SampleSpec.channels;
rc = DrvAudioStreamCfgToProps(&streamCfg, &pHstStrmOut->Props);
if (RT_SUCCESS(rc))
{
uint32_t cbBuf = RT_MIN(pThisStrmOut->BufAttr.tlength * 2,
pThisStrmOut->BufAttr.maxlength); /** @todo Make this configurable! */
if (cbBuf)
{
pThisStrmOut->pvPCMBuf = RTMemAllocZ(cbBuf);
if (pThisStrmOut->pvPCMBuf)
{
pThisStrmOut->cbPCMBuf = cbBuf;
uint32_t cSamples = cbBuf >> pHstStrmOut->Props.cShift;
if (pcSamples)
*pcSamples = cSamples;
/* Save pointer to driver instance. */
pThisStrmOut->pDrv = pDrv;
LogFunc(("cbBuf=%RU32, cSamples=%RU32\n", cbBuf, cSamples));
}
else
rc = VERR_NO_MEMORY;
}
开发者ID:bhanug, 项目名称:virtualbox, 代码行数:72, 代码来源:DrvHostPulseAudio.cpp
示例6: switch
static const char *errorToString(DWORD dwErr)
{
switch (dwErr)
{
#define MY_CASE(a_uConst) case a_uConst: return #a_uConst;
MY_CASE(CRYPT_E_MSG_ERROR);
MY_CASE(CRYPT_E_UNKNOWN_ALGO);
MY_CASE(CRYPT_E_OID_FORMAT);
MY_CASE(CRYPT_E_INVALID_MSG_TYPE);
MY_CASE(CRYPT_E_UNEXPECTED_ENCODING);
MY_CASE(CRYPT_E_AUTH_ATTR_MISSING);
MY_CASE(CRYPT_E_HASH_VALUE);
MY_CASE(CRYPT_E_INVALID_INDEX);
MY_CASE(CRYPT_E_ALREADY_DECRYPTED);
MY_CASE(CRYPT_E_NOT_DECRYPTED);
MY_CASE(CRYPT_E_RECIPIENT_NOT_FOUND);
MY_CASE(CRYPT_E_CONTROL_TYPE);
MY_CASE(CRYPT_E_ISSUER_SERIALNUMBER);
MY_CASE(CRYPT_E_SIGNER_NOT_FOUND);
MY_CASE(CRYPT_E_ATTRIBUTES_MISSING);
MY_CASE(CRYPT_E_STREAM_MSG_NOT_READY);
MY_CASE(CRYPT_E_STREAM_INSUFFICIENT_DATA);
MY_CASE(CRYPT_I_NEW_PROTECTION_REQUIRED);
MY_CASE(CRYPT_E_BAD_LEN);
MY_CASE(CRYPT_E_BAD_ENCODE);
MY_CASE(CRYPT_E_FILE_ERROR);
MY_CASE(CRYPT_E_NOT_FOUND);
MY_CASE(CRYPT_E_EXISTS);
MY_CASE(CRYPT_E_NO_PROVIDER);
MY_CASE(CRYPT_E_SELF_SIGNED);
MY_CASE(CRYPT_E_DELETED_PREV);
MY_CASE(CRYPT_E_NO_MATCH);
MY_CASE(CRYPT_E_UNEXPECTED_MSG_TYPE);
MY_CASE(CRYPT_E_NO_KEY_PROPERTY);
MY_CASE(CRYPT_E_NO_DECRYPT_CERT);
MY_CASE(CRYPT_E_BAD_MSG);
MY_CASE(CRYPT_E_NO_SIGNER);
MY_CASE(CRYPT_E_PENDING_CLOSE);
MY_CASE(CRYPT_E_REVOKED);
MY_CASE(CRYPT_E_NO_REVOCATION_DLL);
MY_CASE(CRYPT_E_NO_REVOCATION_CHECK);
MY_CASE(CRYPT_E_REVOCATION_OFFLINE);
MY_CASE(CRYPT_E_NOT_IN_REVOCATION_DATABASE);
MY_CASE(CRYPT_E_INVALID_NUMERIC_STRING);
MY_CASE(CRYPT_E_INVALID_PRINTABLE_STRING);
MY_CASE(CRYPT_E_INVALID_IA5_STRING);
MY_CASE(CRYPT_E_INVALID_X500_STRING);
MY_CASE(CRYPT_E_NOT_CHAR_STRING);
MY_CASE(CRYPT_E_FILERESIZED);
MY_CASE(CRYPT_E_SECURITY_SETTINGS);
MY_CASE(CRYPT_E_NO_VERIFY_USAGE_DLL);
MY_CASE(CRYPT_E_NO_VERIFY_USAGE_CHECK);
MY_CASE(CRYPT_E_VERIFY_USAGE_OFFLINE);
MY_CASE(CRYPT_E_NOT_IN_CTL);
MY_CASE(CRYPT_E_NO_TRUSTED_SIGNER);
MY_CASE(CRYPT_E_MISSING_PUBKEY_PARA);
MY_CASE(CRYPT_E_OSS_ERROR);
default:
{
PCRTCOMERRMSG pWinComMsg = RTErrCOMGet(dwErr);
if (pWinComMsg)
return pWinComMsg->pszDefine;
static char s_szErr[32];
RTStrPrintf(s_szErr, sizeof(s_szErr), "%#x (%d)", dwErr, dwErr);
return s_szErr;
}
}
}
开发者ID:jeppeter, 项目名称:vbox, 代码行数:69, 代码来源:VBoxCertUtil.cpp
示例7: FwCommonPlantDMITable
//.........这里部分代码省略.........
READCFGSTR(pChassis->u8AssetTag, DmiChassisAssetTag);
pChassis->u8BootupState = 0x03; /* safe */
pChassis->u8PowerSupplyState = 0x03; /* safe */
pChassis->u8ThermalState = 0x03; /* safe */
pChassis->u8SecurityStatus = 0x03; /* none XXX */
# if 0
/* v2.3+, currently not supported */
pChassis->u32OEMdefined = 0;
pChassis->u8Height = 0; /* unspecified */
pChassis->u8NumPowerChords = 0; /* unspecified */
pChassis->u8ContElems = 0; /* no contained elements */
pChassis->u8ContElemRecLen = 0; /* no contained elements */
# endif
TERM_STRUCT;
/**************************************
* DMI Processor Information (Type 4) *
**************************************/
/*
* This is just a dummy processor. Should we expose the real guest CPU features
* here? Accessing this information at this point is difficult.
*/
char szSocket[32];
PDMIPROCESSORINF pProcessorInf = (PDMIPROCESSORINF)pszStr;
CHECKSIZE(sizeof(*pProcessorInf));
START_STRUCT(pProcessorInf);
if (fDmiExposeProcessorInf)
pProcessorInf->header.u8Type = 4; /* Processor Information */
else
pProcessorInf->header.u8Type = 126; /* inactive structure */
pProcessorInf->header.u8Length = sizeof(*pProcessorInf);
pProcessorInf->header.u16Handle = 0x0007;
RTStrPrintf(szSocket, sizeof(szSocket), "Socket #%u", 0);
pProcessorInf->u8SocketDesignation = iStrNr++;
{
size_t cStr = strlen(szSocket) + 1;
CHECKSIZE(cStr);
memcpy(pszStr, szSocket, cStr);
pszStr += cStr;
}
pProcessorInf->u8ProcessorType = 0x03; /* Central Processor */
pProcessorInf->u8ProcessorFamily = 0xB1; /* Pentium III with Intel SpeedStep(TM) */
READCFGSTR(pProcessorInf->u8ProcessorManufacturer, DmiProcManufacturer);
pProcessorInf->u64ProcessorID = UINT64_C(0x0FEBFBFF00010676);
/* Ext Family ID = 0
* Ext Model ID = 2
* Processor Type = 0
* Family ID = 6
* Model = 7
* Stepping = 6
* Features: FPU, VME, DE, PSE, TSC, MSR, PAE, MCE, CX8,
* APIC, SEP, MTRR, PGE, MCA, CMOV, PAT, PSE-36,
* CFLSH, DS, ACPI, MMX, FXSR, SSE, SSE2, SS */
READCFGSTR(pProcessorInf->u8ProcessorVersion, DmiProcVersion);
pProcessorInf->u8Voltage = 0x02; /* 3.3V */
pProcessorInf->u16ExternalClock = 0x00; /* unknown */
pProcessorInf->u16MaxSpeed = 3000; /* 3GHz */
pProcessorInf->u16CurrentSpeed = 3000; /* 3GHz */
pProcessorInf->u8Status = RT_BIT(6) /* CPU socket populated */
| RT_BIT(0) /* CPU enabled */
;
pProcessorInf->u8ProcessorUpgrade = 0x04; /* ZIF Socket */
pProcessorInf->u16L1CacheHandle = 0xFFFF; /* not specified */
pProcessorInf->u16L2CacheHandle = 0xFFFF; /* not specified */
开发者ID:MadHacker217, 项目名称:VirtualBox-OSE, 代码行数:67, 代码来源:DevFwCommon.cpp
示例8: VMMR3_INT_DECL
/**
* Annotates an instruction if patched.
*
* @param pVM The cross context VM structure.
* @param RCPtr The instruction address.
* @param cbInstr The instruction length.
* @param pszBuf The output buffer. This will be an empty string if the
* instruction wasn't patched. If it's patched, it will
* hold a symbol-like string describing the patch.
* @param cbBuf The size of the output buffer.
*/
VMMR3_INT_DECL(void) PATMR3DbgAnnotatePatchedInstruction(PVM pVM, RTRCPTR RCPtr, uint8_t cbInstr, char *pszBuf, size_t cbBuf)
{
/*
* Always zero the buffer.
*/
AssertReturnVoid(cbBuf > 0);
*pszBuf = '\0';
/*
* Drop out immediately if it cannot be a patched instruction.
*/
if (!PATMIsEnabled(pVM))
return;
if ( RCPtr < pVM->patm.s.pPatchedInstrGCLowest
|| RCPtr > pVM->patm.s.pPatchedInstrGCHighest)
return;
/*
* Look for a patch record covering any part of the instruction.
*
* The first query results in a patched less or equal to RCPtr. While the
* second results in one that's greater than RCPtr.
*/
PPATMPATCHREC pPatchRec;
pPatchRec = (PPATMPATCHREC)RTAvloU32GetBestFit(&pVM->patm.s.PatchLookupTreeHC->PatchTree, RCPtr, false /*fFromAbove*/);
if ( !pPatchRec
|| RCPtr - pPatchRec->patch.pPrivInstrGC > pPatchRec->patch.cbPrivInstr)
{
pPatchRec = (PPATMPATCHREC)RTAvloU32GetBestFit(&pVM->patm.s.PatchLookupTreeHC->PatchTree, RCPtr, true /*fFromAbove*/);
if ( !pPatchRec
|| (RTRCPTR)(RCPtr + cbInstr) < pPatchRec->patch.pPrivInstrGC )
return;
}
/*
* Lazy bird uses the symbol name generation code for describing the patch.
*/
size_t off = patmR3DbgDescribePatchAsSymbol(pPatchRec, pszBuf, cbBuf);
if (off + 1 < cbBuf)
{
const char *pszState;
switch (pPatchRec->patch.uState)
{
case PATCH_REFUSED: pszState = "Refused"; break;
case PATCH_DISABLED: pszState = "Disabled"; break;
case PATCH_ENABLED: pszState = "Enabled"; break;
case PATCH_UNUSABLE: pszState = "Unusable"; break;
case PATCH_DIRTY: pszState = "Dirty"; break;
case PATCH_DISABLE_PENDING: pszState = "DisablePending"; break;
default: pszState = "State???"; AssertFailed(); break;
}
if (pPatchRec->patch.cbPatchBlockSize > 0)
off += RTStrPrintf(&pszBuf[off], cbBuf - off, " - %s (%u b) - %#x LB %#x",
pszState, pPatchRec->patch.cbPatchJump,
pPatchRec->patch.pPatchBlockOffset + pVM->patm.s.pPatchMemGC,
pPatchRec->patch.cbPatchBlockSize);
else
off += RTStrPrintf(&pszBuf[off], cbBuf - off, " - %s (%u b)", pszState, pPatchRec->patch.cbPatchJump);
}
}
开发者ID:mdaniel, 项目名称:virtualbox-org-svn-vbox-trunk, 代码行数:73, 代码来源:PATMR3Dbg.cpp
示例9: RTR3DECL
//.........这里部分代码省略.........
if (pszPidfile != NULL)
{
/* @note the exclusive create is not guaranteed on all file
* systems (e.g. NFSv2) */
if ((fdPidfile = open(pszPidfile, O_RDWR | O_CREAT | O_EXCL, 0644)) == -1)
return RTErrConvertFromErrno(errno);
}
/* Ignore SIGHUP straight away. */
struct sigaction OldSigAct;
struct sigaction SigAct;
memset(&SigAct, 0, sizeof(SigAct));
SigAct.sa_handler = SIG_IGN;
int rcSigAct = sigaction(SIGHUP, &SigAct, &OldSigAct);
/* First fork, to become independent process. */
pid_t pid = fork();
if (pid == -1)
{
if (fdPidfile != -1)
close(fdPidfile);
return RTErrConvertFromErrno(errno);
}
if (pid != 0)
{
/* Parent exits, no longer necessary. The child gets reparented
* to the init process. */
exit(0);
}
/* Create new session, fix up the standard file descriptors and the
* current working directory. */
/** @todo r=klaus the webservice uses this function and assumes that the
* contract id of the daemon is the same as that of the original process.
* Whenever this code is changed this must still remain possible. */
pid_t newpgid = setsid();
int SavedErrno = errno;
if (rcSigAct != -1)
sigaction(SIGHUP, &OldSigAct, NULL);
if (newpgid == -1)
{
if (fdPidfile != -1)
close(fdPidfile);
return RTErrConvertFromErrno(SavedErrno);
}
if (!fNoClose)
{
/* Open stdin(0), stdout(1) and stderr(2) as /dev/null. */
int fd = open("/dev/null", O_RDWR);
if (fd == -1) /* paranoia */
{
close(STDIN_FILENO);
close(STDOUT_FILENO);
close(STDERR_FILENO);
fd = open("/dev/null", O_RDWR);
}
if (fd != -1)
{
dup2(fd, STDIN_FILENO);
dup2(fd, STDOUT_FILENO);
dup2(fd, STDERR_FILENO);
if (fd > 2)
close(fd);
}
}
if (!fNoChDir)
{
int rcIgnored = chdir("/");
NOREF(rcIgnored);
}
/* Second fork to lose session leader status. */
pid = fork();
if (pid == -1)
{
if (fdPidfile != -1)
close(fdPidfile);
return RTErrConvertFromErrno(errno);
}
if (pid != 0)
{
/* Write the pid file, this is done in the parent, before exiting. */
if (fdPidfile != -1)
{
char szBuf[256];
size_t cbPid = RTStrPrintf(szBuf, sizeof(szBuf), "%d\n", pid);
ssize_t cbIgnored = write(fdPidfile, szBuf, cbPid); NOREF(cbIgnored);
close(fdPidfile);
}
exit(0);
}
if (fdPidfile != -1)
close(fdPidfile);
return VINF_SUCCESS;
}
开发者ID:mutoso-mirrors, 项目名称:vbox, 代码行数:101, 代码来源:process-creation-posix.cpp
示例10: DECLEXPORT
/**
* Special entrypoint used by the hardening code when something goes south.
*
* Display an error dialog to the user.
*
* @param pszWhere Indicates where the error occured.
* @param enmWhat Indicates what init operation was going on at the time.
* @param rc The VBox status code corresponding to the error.
* @param pszMsgFmt The message format string.
* @param va Format arguments.
*/
extern "C" DECLEXPORT(void) TrustedError(const char *pszWhere, SUPINITOP enmWhat, int rc, const char *pszMsgFmt, va_list va)
{
# ifdef VBOX_WS_MAC
/* Hide setuid root from AppKit: */
HideSetUidRootFromAppKit();
# endif /* VBOX_WS_MAC */
char szMsgBuf[_16K];
/*
* We have to create QApplication anyway just to show the only one error-message.
* This is a bit hackish as we don't have the argument vector handy.
*/
int argc = 0;
char *argv[2] = { NULL, NULL };
QApplication a(argc, &argv[0]);
/*
* The details starts off a properly formatted rc and where/what, we use
* the szMsgBuf for this, thus this have to come before the actual message
* formatting.
*/
RTStrPrintf(szMsgBuf, sizeof(szMsgBuf),
"<!--EOM-->"
"where: %s\n"
"what: %d\n"
"%Rra\n",
pszWhere, enmWhat, rc);
QString strDetails = szMsgBuf;
/*
* Format the error message. Take whatever comes after a double new line as
* something better off in the details section.
*/
RTStrPrintfV(szMsgBuf, sizeof(szMsgBuf), pszMsgFmt, va);
char *pszDetails = strstr(szMsgBuf, "\n\n");
if (pszDetails)
{
while (RT_C_IS_SPACE(*pszDetails))
*pszDetails++ = '\0';
if (*pszDetails)
{
strDetails += "\n";
strDetails += pszDetails;
}
RTStrStripR(szMsgBuf);
}
QString strText = QApplication::tr("<html><b>%1 (rc=%2)</b><br/><br/>").arg(szMsgBuf).arg(rc);
strText.replace(QString("\n"), QString("<br>"));
/*
* Append possibly helpful hints to the error message.
*/
switch (enmWhat)
{
case kSupInitOp_Driver:
# ifdef RT_OS_LINUX
strText += g_QStrHintLinuxNoDriver;
# else /* RT_OS_LINUX */
strText += g_QStrHintOtherNoDriver;
# endif /* !RT_OS_LINUX */
break;
# ifdef RT_OS_LINUX
case kSupInitOp_IPRT:
case kSupInitOp_Misc:
if (rc == VERR_NO_MEMORY)
strText += g_QStrHintLinuxNoMemory;
else
# endif /* RT_OS_LINUX */
if (rc == VERR_VM_DRIVER_VERSION_MISMATCH)
# ifdef RT_OS_LINUX
strText += g_QStrHintLinuxWrongDriverVersion;
# else /* RT_OS_LINUX */
strText += g_QStrHintOtherWrongDriverVersion;
# endif /* !RT_OS_LINUX */
else
strText += g_QStrHintReinstall;
break;
case kSupInitOp_Integrity:
case kSupInitOp_RootCheck:
strText += g_QStrHintReinstall;
break;
default:
/* no hints here */
break;
}
开发者ID:miguelinux, 项目名称:vbox, 代码行数:99, 代码来源:main.cpp
示例11: RTStrPrintf
/* { */
n = RTStrPrintf(buff, sizeof(buff), "tcp[%s]", so->so_tcpcb?tcpstates[so->so_tcpcb->t_state]:"NONE");
while (n < 17)
buff[n++] = ' ';
buff[17] = 0;
lprint("%s %3d %15s %5d ",
buff, so->s, inet_ntoa(so->so_laddr), RT_N2H_U16(so->so_lport));
lprint("%15s %5d %5d %5d\n",
inet_ntoa(so->so_faddr), RT_N2H_U16(so->so_fport),
SBUF_LEN(&so->so_rcv), SBUF_LEN(&so->so_snd));
LOOP_LABEL(tcp, so, so_next);
}
QSOCKET_FOREACH(so, so_next, udp)
/* { */
n = RTStrPrintf(buff, sizeof(buff), "udp[%d sec]", (so->so_expire - curtime) / 1000);
while (n < 17)
buff[n++] = ' ';
buff[17] = 0;
lprint("%s %3d %15s %5d ",
buff, so->s, inet_ntoa(so->so_laddr), RT_N2H_U16(so->so_lport));
lprint("%15s %5d %5d %5d\n",
inet_ntoa(so->so_faddr), RT_N2H_U16(so->so_fport),
SBUF_LEN(&so->so_rcv), SBUF_LEN(&so->so_snd));
LOOP_LABEL(udp, so, so_next);
}
}
#endif
static DECLCALLBACK(size_t)
printSocket(PFNRTSTROUTPUT pfnOutput, void *pvArgOutput,
开发者ID:MadHacker217, 项目名称:VirtualBox-OSE, 代码行数:31, 代码来源:debug.c
示例12: switch
//.........这里部分代码省略.........
default:
LogRel(("Event: %s %s port-forwarding rule \"%s\":"
" invalid protocol %d\n",
fCreateFW ? "Add" : "Remove",
fIPv6FW ? "IPv6" : "IPv4",
com::Utf8Str(name).c_str(),
(int)proto));
goto port_forward_done;
}
LogRel(("Event: %s %s port-forwarding rule \"%s\":"
" %s %s%s%s:%d -> %s%s%s:%d\n",
fCreateFW ? "Add" : "Remove",
fIPv6FW ? "IPv6" : "IPv4",
com::Utf8Str(name).c_str(),
proto == NATProtocol_TCP ? "TCP" : "UDP",
/* from */
fIPv6FW ? "[" : "",
com::Utf8Str(strHostAddr).c_str(),
fIPv6FW ? "]" : "",
lHostPort,
/* to */
fIPv6FW ? "[" : "",
com::Utf8Str(strGuestAddr).c_str(),
fIPv6FW ? "]" : "",
lGuestPort));
if (name.length() > sizeof(r.Pfr.szPfrName))
{
hrc = E_INVALIDARG;
goto port_forward_done;
}
RTStrPrintf(r.Pfr.szPfrName, sizeof(r.Pfr.szPfrName),
"%s", com::Utf8Str(name).c_str());
RTStrPrintf(r.Pfr.szPfrHostAddr, sizeof(r.Pfr.szPfrHostAddr),
"%s", com::Utf8Str(strHostAddr).c_str());
/* XXX: limits should be checked */
r.Pfr.u16PfrHostPort = (uint16_t)lHostPort;
RTStrPrintf(r.Pfr.szPfrGuestAddr, sizeof(r.Pfr.szPfrGuestAddr),
"%s", com::Utf8Str(strGuestAddr).c_str());
/* XXX: limits should be checked */
r.Pfr.u16PfrGuestPort = (uint16_t)lGuestPort;
if (fCreateFW) /* Addition */
{
int rc = natServicePfRegister(r);
if (RT_SUCCESS(rc))
rules.push_back(r);
}
else /* Deletion */
{
ITERATORNATSERVICEPF it;
for (it = rules.begin(); it != rules.end(); ++it)
{
/* compare */
NATSEVICEPORTFORWARDRULE& natFw = *it;
if ( natFw.Pfr.iPfrProto == r.Pfr.iPfrProto
&& natFw.Pfr.u16PfrHostPort == r.Pfr.u16PfrHostPort
&& (strncmp(natFw.Pfr.szPfrHostAddr, r.Pfr.szPfrHostAddr, INET6_ADDRSTRLEN) == 0)
&& natFw.Pfr.u16PfrGuestPort == r.Pfr.u16PfrGuestPort
&& (strncmp(natFw.Pfr.szPfrGuestAddr, r.Pfr.szPfrGuestAddr, INET6_ADDRSTRLEN) == 0))
开发者ID:zBMNForks, 项目名称:virtualbox-org-svn-vbox-trunk, 代码行数:67, 代码来源:VBoxNetLwipNAT.cpp
示例13: RTDECL
RTDECL(int) RTManifestReadStandardEx(RTMANIFEST hManifest, RTVFSIOSTREAM hVfsIos, char *pszErr, size_t cbErr)
{
/*
* Validate input.
*/
AssertPtrNull(pszErr);
if (pszErr && cbErr)
*pszErr = '\0';
RTMANIFESTINT *pThis = hManifest;
AssertPtrReturn(pThis, VERR_INVALID_HANDLE);
AssertReturn(pThis->u32Magic == RTMANIFEST_MAGIC, VERR_INVALID_HANDLE);
/*
* Process the stream line by line.
*/
uint32_t iLine = 0;
for (;;)
{
/*
* Read a line from the input stream.
*/
iLine++;
char szLine[RTPATH_MAX + RTSHA512_DIGEST_LEN + 32];
int rc = rtManifestReadLine(hVfsIos, szLine, sizeof(szLine));
if (RT_FAILURE(rc))
{
if (rc == VERR_EOF)
return VINF_SUCCESS;
RTStrPrintf(pszErr, cbErr, "Error reading line #u: %Rrc", iLine, rc);
return rc;
}
if (rc != VINF_SUCCESS)
{
RTStrPrintf(pszErr, cbErr, "Line number %u is too long", iLine);
return VERR_OUT_OF_RANGE;
}
/*
* Strip it and skip if empty.
*/
char *psz = RTStrStrip(szLine);
if (!*psz)
continue;
/*
* Read the attribute name.
*/
const char * const pszAttr = psz;
do
psz++;
while (!RT_C_IS_BLANK(*psz) && *psz);
if (*psz)
*psz++ = '\0';
/*
* The entry name is enclosed in parenthesis and followed by a '='.
*/
psz = RTStrStripL(psz);
if (*psz != '(')
{
RTStrPrintf(pszErr, cbErr, "Expected '(' after %zu on line %u", psz - szLine, iLine);
return VERR_PARSE_ERROR;
}
const char * const pszName = ++psz;
while (*psz)
{
if (*psz == ')')
{
char *psz2 = RTStrStripL(psz + 1);
if (*psz2 == '=')
{
*psz = '\0';
psz = psz2;
break;
}
}
psz++;
}
if (*psz != '=')
{
RTStrPrintf(pszErr, cbErr, "Expected ')=' at %zu on line %u", psz - szLine, iLine);
return VERR_PARSE_ERROR;
}
/*
* The value.
*/
psz = RTStrStrip(psz + 1);
const char * const pszValue = psz;
if (!*psz)
{
RTStrPrintf(pszErr, cbErr, "Expected value at %zu on line %u", psz - szLine, iLine);
return VERR_PARSE_ERROR;
}
/*
* Detect attribute type and sanity check the value.
*/
uint32_t fType = RTMANIFEST_ATTR_UNKNOWN;
//.........这里部分代码省略.........
开发者ID:leopucci, 项目名称:VirtualMonitor, 代码行数:101, 代码来源:manifest2.cpp
示例14: patmR3DbgDescribePatchAsSymbol
static size_t patmR3DbgDescribePatchAsSymbol(PPATMPATCHREC pPatchRec, char *pszName, size_t cbLeft)
{
char * const pszNameStart = pszName;
#define ADD_SZ(a_sz) \
do { \
if (cbLeft >= sizeof(a_sz)) \
{ \
memcpy(pszName, a_sz, sizeof(a_sz)); \
pszName += sizeof(a_sz) - 1; \
cbLeft -= sizeof(a_sz) - 1;\
}\
} while (0)
/* Start the name off with the address of the guest code. */
size_t cch = RTStrPrintf(pszName, cbLeft, "Patch_%#08x", pPatchRec->patch.pPrivInstrGC);
cbLeft -= cch;
pszName += cch;
/* Append flags. */
uint64_t fFlags = pPatchRec->patch.flags;
if (fFlags & PATMFL_INTHANDLER)
ADD_SZ("_IntHandler");
if (fFlags & PATMFL_SYSENTER)
ADD_SZ("_SysEnter");
if (fFlags & PATMFL_GUEST_SPECIFIC)
ADD_SZ("_GuestSpecific");
if (fFlags & PATMFL_USER_MODE)
ADD_SZ("_UserMode");
if (fFlags & PATMFL_IDTHANDLER)
ADD_SZ("_IdtHnd");
if (fFlags & PATMFL_TRAPHANDLER)
ADD_SZ("_TrapHnd");
if (fFlags & PATMFL_DUPLICATE_FUNCTION)
ADD_SZ("_DupFunc");
if (fFlags & PATMFL_REPLACE_FUNCTION_CALL)
ADD_SZ("_ReplFunc");
if (fFlags & PATMFL_TRAPHANDLER_WITH_ERRORCODE)
ADD_SZ("_TrapHndErrCd");
if (fFlags & PATMFL_MMIO_ACCESS)
ADD_SZ("_MmioAccess");
if (fFlags & PATMFL_SYSENTER_XP)
ADD_SZ("_SysEnterXP");
if (fFlags & PATMFL_INT3_REPLACEMENT)
ADD_SZ("_Int3Repl");
if (fFlags & PATMFL_SUPPORT_CALLS)
ADD_SZ("_SupCalls");
if (fFlags & PATMFL_SUPPORT_INDIRECT_CALLS)
ADD_SZ("_SupIndirCalls");
if (fFlags & PATMFL_IDTHANDLER_WITHOUT_ENTRYPOINT)
ADD_SZ("_IdtHandlerWE");
if (fFlags & PATMFL_INHIBIT_IRQS)
ADD_SZ("_InhibitIrqs");
if (fFlags & PATMFL_RECOMPILE_NEXT)
ADD_SZ("_RecompileNext");
if (fFlags & PATMFL_CALLABLE_AS_FUNCTION)
ADD_SZ("_Callable");
if (fFlags & PATMFL_TRAMPOLINE)
ADD_SZ("_Trampoline");
if (fFlags & PATMFL_PATCHED_GUEST_CODE)
ADD_SZ("_PatchedGuestCode");
if (fFlags & PATMFL_MUST_INSTALL_PATCHJMP)
ADD_SZ("_MustInstallPatchJmp");
if (fFlags & PATMFL_INT3_REPLACEMENT_BLOCK)
ADD_SZ("_Int3ReplBlock");
if (fFlags & PATMFL_EXTERNAL_JUMP_INSIDE)
ADD_SZ("_ExtJmp");
if (fFlags & PATMFL_CODE_REFERENCED)
ADD_SZ("_CodeRefed");
return pszName - pszNameStart;
}
开发者ID:mdaniel, 项目名称:virtualbox-org-svn-vbox-trunk, 代码行数:71, 代码来源:PATMR3Dbg.cpp
六六分期app的软件客服如何联系?不知道吗?加qq群【895510560】即可!标题:六六分期
阅读:18157| 2023-10-27
今天小编告诉大家如何处理win10系统火狐flash插件总是崩溃的问题,可能很多用户都不知
阅读:9638| 2022-11-06
今天小编告诉大家如何对win10系统删除桌面回收站图标进行设置,可能很多用户都不知道
阅读:8161| 2022-11-06
今天小编告诉大家如何对win10系统电脑设置节能降温的设置方法,想必大家都遇到过需要
阅读:8539| 2022-11-06
我们在使用xp系统的过程中,经常需要对xp系统无线网络安装向导设置进行设置,可能很多
阅读:8442| 2022-11-06
今天小编告诉大家如何处理win7系统玩cf老是与主机连接不稳定的问题,可能很多用户都不
阅读:9360| 2022-11-06
电脑对日常生活的重要性小编就不多说了,可是一旦碰到win7系统设置cf烟雾头的问题,很
阅读:8411| 2022-11-06
我们在日常使用电脑的时候,有的小伙伴们可能在打开应用的时候会遇见提示应用程序无法
阅读:7849| 2022-11-06
今天小编告诉大家如何对win7系统打开vcf文件进行设置,可能很多用户都不知道怎么对win
阅读:8395| 2022-11-06
今天小编告诉大家如何对win10系统s4开启USB调试模式进行设置,可能很多用户都不知道怎
阅读:7388| 2022-11-06
请发表评论