• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ RTL_FREE函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中RTL_FREE函数的典型用法代码示例。如果您正苦于以下问题:C++ RTL_FREE函数的具体用法?C++ RTL_FREE怎么用?C++ RTL_FREE使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了RTL_FREE函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: RegSafeFreeValueAttributes

void
RegSafeFreeValueAttributes(
    PLWREG_VALUE_ATTRIBUTES* ppValueAttrs
    )
{
    PLWREG_VALUE_ATTRIBUTES pValueAttrs = NULL;

    if ((ppValueAttrs == NULL) || (*ppValueAttrs == NULL)) {
        return;
    }

    pValueAttrs = *ppValueAttrs;
    RTL_FREE(&pValueAttrs->pDefaultValue);
    RTL_FREE(&pValueAttrs->pwszDocString);

    if (LWREG_VALUE_RANGE_TYPE_ENUM == pValueAttrs->RangeType)
    {
        if (pValueAttrs->Range.ppwszRangeEnumStrings)
        {
            RegFreeWC16StringArrayWithNullTerminator(pValueAttrs->Range.ppwszRangeEnumStrings);
        }
        pValueAttrs->Range.ppwszRangeEnumStrings = NULL;
    }

    RTL_FREE(&pValueAttrs);

    *ppValueAttrs = NULL;

    return;
}
开发者ID:FarazShaikh,项目名称:LikewiseSMB2,代码行数:30,代码来源:regmem.c


示例2: RdrQueryDfsReferral2Complete

static
BOOLEAN
RdrQueryDfsReferral2Complete(
    PRDR_OP_CONTEXT pContext,
    NTSTATUS status,
    PVOID pParam
    )
{
    PSMB_PACKET pPacket = pParam;
    PBYTE pOutput = NULL;
    ULONG ulOutputSize = 0;

    BAIL_ON_NT_STATUS(status);

    status = pPacket->pSMB2Header->error;
    switch (status)
    {
    case STATUS_NO_SUCH_FILE:
    case STATUS_NO_SUCH_DEVICE:
    case STATUS_NOT_FOUND:
        /* Referral failed -- insert negative cache entry */
        pOutput = NULL;
        ulOutputSize = 0;
        status = STATUS_SUCCESS;
        break;
    default:
        BAIL_ON_NT_STATUS(status);

        status = RdrSmb2DecodeIoctlResponse(pPacket, &pOutput, &ulOutputSize);
        BAIL_ON_NT_STATUS(status);
    }

    status = RdrDfsRegisterNamespace(
        pContext->State.DfsConnect.pwszNamespace,
        (PDFS_RESPONSE_HEADER) pOutput,
        (USHORT) ulOutputSize);
    BAIL_ON_NT_STATUS(status);
    status = RdrDfsConnectAttempt(pContext);
    BAIL_ON_NT_STATUS(status);

cleanup:

    RdrFreePacket(pPacket);

    if (status != STATUS_PENDING)
    {
        RdrContinueContext(pContext->State.DfsConnect.pContinue, status, NULL);
        RTL_FREE(&pContext->State.DfsConnect.pwszNamespace);
        RTL_FREE(pContext->State.DfsConnect.ppwszCanonicalPath);
        RTL_FREE(pContext->State.DfsConnect.ppwszFilePath);
        RdrFreeContext(pContext);
    }

    return FALSE;

error:

    goto cleanup;
}
开发者ID:virtual-void,项目名称:pbis,代码行数:59,代码来源:dfs2.c


示例3: RdrFreePacket

VOID
RdrFreePacket(
    PSMB_PACKET pPacket
    )
{
    if (pPacket)
    {
        RTL_FREE(&pPacket->pRawBuffer);
        RTL_FREE(&pPacket);
    }
}
开发者ID:virtual-void,项目名称:pbis,代码行数:11,代码来源:driver.c


示例4: RdrFreeContext

VOID
RdrFreeContext(
    PRDR_OP_CONTEXT pContext
    )
{
    if (pContext)
    {
        LWIO_LOG_DEBUG("Freed op context %p", pContext);
        RTL_FREE(&pContext->Packet.pRawBuffer);
        RTL_FREE(&pContext);
    }
}
开发者ID:virtual-void,项目名称:pbis,代码行数:12,代码来源:driver.c


示例5: RdrIsInPlaceRename

static
NTSTATUS
RdrIsInPlaceRename(
    PRDR_CCB pFile,
    PFILE_RENAME_INFORMATION pRenameInfo,
    PBOOLEAN pbIsInPlace
    )
{
    NTSTATUS status = STATUS_SUCCESS;
    PWSTR pwszShare = NULL;
    PWSTR pwszFile = NULL;
    PWSTR pwszExisting = NULL;
    PWSTR pwszNew = NULL;

    status = RdrConvertPath(
        pRenameInfo->FileName,
        NULL,
        &pwszShare,
        &pwszFile
        );
    BAIL_ON_NT_STATUS(status);
    status = LwRtlWC16StringAllocatePrintfW(
        &pwszNew,
        L"%ws%ws",
        pwszShare,
        pwszFile);
    BAIL_ON_NT_STATUS(status);

    status = LwRtlWC16StringDuplicate(&pwszExisting, pFile->pwszCanonicalPath);
    BAIL_ON_NT_STATUS(status);

    RdrTrimLastPathElement(pwszNew);
    RdrTrimLastPathElement(pwszExisting);

    *pbIsInPlace = LwRtlWC16StringIsEqual(pwszNew, pwszExisting, FALSE);
cleanup:

    RTL_FREE(&pwszShare);
    RTL_FREE(&pwszFile);
    RTL_FREE(&pwszExisting);
    RTL_FREE(&pwszNew);

    return status;

error:

    *pbIsInPlace = FALSE;

    goto cleanup;
}
开发者ID:bhanug,项目名称:likewise-open,代码行数:50,代码来源:setinfo.c


示例6: LwRtlAnsiStringAllocatePrintfV

LW_NTSTATUS
LwRtlAnsiStringAllocatePrintfV(
    LW_OUT LW_PANSI_STRING pNewString,
    LW_IN LW_PCSTR Format,
    LW_IN va_list Args
    )
{
    NTSTATUS status = 0;
    PSTR pOutputString = NULL;
    ANSI_STRING newString = { 0 };

    status = LwRtlCStringAllocatePrintfV(
                    &pOutputString,
                    Format,
                    Args);
    GOTO_CLEANUP_ON_STATUS(status);

    status = LwRtlAnsiStringInitEx(&newString, pOutputString);
    GOTO_CLEANUP_ON_STATUS(status);

    pOutputString = NULL;

cleanup:
    if (status)
    {
        RTL_ANSI_STRING_FREE(&newString);
    }

    RTL_FREE(&pOutputString);

    *pNewString = newString;

    return status;
}
开发者ID:borland667,项目名称:pbis,代码行数:34,代码来源:rtlstring_ansi.c


示例7: LwIoRdrFreePhysicalPath

VOID
LwIoRdrFreePhysicalPath(
    LW_PWSTR pResolved
    )
{
    RTL_FREE(&pResolved);
}
开发者ID:bhanug,项目名称:likewise-open,代码行数:7,代码来源:smbfileapictx.c


示例8: PvfsListInit

NTSTATUS
PvfsListInit(
    PPVFS_LIST *ppNewList,
    DWORD dwMaxSize,
    PPVFS_LIST_FREE_DATA_FN pfnFreeData
    )
{
    NTSTATUS ntError = STATUS_UNSUCCESSFUL;
    PPVFS_LIST pList = NULL;

    BAIL_ON_INVALID_PTR(ppNewList, ntError);

    ntError = RTL_ALLOCATE(&pList, PVFS_LIST, sizeof(PVFS_LIST));
    BAIL_ON_NT_STATUS(ntError);

    pList->MaxSize = dwMaxSize;
    pList->CurrentSize = 0;

    pList->pfnFreeData = pfnFreeData;

    LwListInit(&pList->DataList);

    *ppNewList = pList;
    pList = NULL;

    ntError = STATUS_SUCCESS;

cleanup:
    RTL_FREE(&pList);

    return ntError;

error:
    goto cleanup;
}
开发者ID:FarazShaikh,项目名称:LikewiseSMB2,代码行数:35,代码来源:listq.c


示例9: DestroyEventThread

static
VOID
DestroyEventThread(
    PKQUEUE_THREAD pThread
    )
{
    pthread_mutex_destroy(&pThread->Lock);
    pthread_cond_destroy(&pThread->Event);

    if (pThread->KqueueFd >= 0)
    {
        close(pThread->KqueueFd);
    }

    if (pThread->SignalFds[0] >= 0)
    {
        close(pThread->SignalFds[0]);
    }

    if (pThread->SignalFds[1] >= 0)
    {
        close(pThread->SignalFds[1]);
    }

    RTL_FREE(&pThread->Commands.pCommands);
}
开发者ID:FarazShaikh,项目名称:LikewiseSMB2,代码行数:26,代码来源:threadpool-kqueue.c


示例10: StartWorkItem

static
VOID
StartWorkItem(
    PLW_WORK_ITEM pItem,
    PVOID pContext
    )
{
    NTSTATUS status = STATUS_SUCCESS;
    PSVCM_START_STATE pState = pContext;

    status = pState->pInstance->pTable->Start(
        pState->pInstance,
        pState->ArgCount,
        pState->ppArgs,
        pState->FdCount,
        pState->pFds);

    if (pState->Notify)
    {
        pState->Notify(pState->pInstance, status, pState->pNotifyContext);
    }

    RTL_FREE(&pState);
    LwRtlFreeWorkItem(&pItem);
}
开发者ID:borland667,项目名称:pbis,代码行数:25,代码来源:svcm.c


示例11: LwRtlWC16StringAllocateFromUnicodeString

LW_NTSTATUS
LwRtlWC16StringAllocateFromUnicodeString(
    LW_OUT LW_PWSTR* ppszNewString,
    LW_IN LW_PUNICODE_STRING pOriginalString
    )
{
    NTSTATUS status = 0;
    UNICODE_STRING terminatedOriginalString = { 0 };
    PWSTR pszNewString = NULL;

    // Since duplicate always does NULL-termination, we can
    // safely use the Buffer field as a WC16String.

    status = LwRtlUnicodeStringDuplicate(&terminatedOriginalString, pOriginalString);
    GOTO_CLEANUP_ON_STATUS(status);

    pszNewString = terminatedOriginalString.Buffer;
    terminatedOriginalString.Buffer = NULL;
    terminatedOriginalString.Length = 0;
    terminatedOriginalString.MaximumLength = 0;

cleanup:
    if (!NT_SUCCESS(status))
    {
        RTL_FREE(&pszNewString);
    }
    LwRtlUnicodeStringFree(&terminatedOriginalString);

    *ppszNewString = pszNewString;

    return status;
}
开发者ID:borland667,项目名称:pbis,代码行数:32,代码来源:rtlstring_wc16string.c


示例12: create_sid_list

/*
 * Converts array of sid strings to array of sids
 */
static
PSID* create_sid_list(char **strlist)
{
    int list_len = 0;
    PSID* sid_list = NULL;
    int i = 0;

    if (strlist == NULL) return NULL;

    /* count the elements (including terminating zero) */
    while (strlist[list_len++]);

    /* allocate the wchar16_t strings array */
    sid_list = (PSID*) malloc(sizeof(PSID) * list_len);
    if (sid_list == NULL) return NULL;

    memset((void*)sid_list, 0, sizeof(PSID) * list_len);

    /* copy mbs strings to wchar16_t strings */
    for (i = 0; strlist[i] && i < list_len; i++) {
        RtlAllocateSidFromCString(&sid_list[i], strlist[i]);
        if (sid_list[i] == NULL) {
            i--;
            while (i >= 0) {
                RTL_FREE(&sid_list[i--]);
            }
            free(sid_list);

            return NULL;
        }
    }

    return sid_list;
}
开发者ID:bhanug,项目名称:likewise-open,代码行数:37,代码来源:params.c


示例13: LwRtlWC16StringDuplicate

NTSTATUS
LwRtlWC16StringDuplicate(
    OUT PWSTR* ppszNewString,
    IN PCWSTR pszOriginalString
    )
{
    NTSTATUS status = 0;
    int EE ATTRIBUTE_UNUSED = 0;
    size_t size = 0;
    PWSTR pszNewString = NULL;

    if (!pszOriginalString)
    {
        status = STATUS_INVALID_PARAMETER;
        GOTO_CLEANUP_ON_STATUS_EE(status, EE);
    }

    size = (LwRtlWC16StringNumChars(pszOriginalString) + 1) * sizeof(pszOriginalString[0]);

    status = RTL_ALLOCATE(&pszNewString, wchar16_t, size);
    GOTO_CLEANUP_ON_STATUS_EE(status, EE);

    memcpy(pszNewString, pszOriginalString, size);

cleanup:
    if (status)
    {
        RTL_FREE(&pszNewString);
    }

    *ppszNewString = pszNewString;

    return status;
}
开发者ID:borland667,项目名称:pbis,代码行数:34,代码来源:rtlstring_wc16string.c


示例14: LwRtlWC16StringFree

VOID
LwRtlWC16StringFree(
    OUT PWSTR* ppszString
    )
{
    RTL_FREE(ppszString);
}
开发者ID:borland667,项目名称:pbis,代码行数:7,代码来源:rtlstring_wc16string.c


示例15: RtlDuplicateSid

NTSTATUS
RtlDuplicateSid(
    OUT PSID* NewSid,
    IN PSID OriginalSid
    )
{
    NTSTATUS status = STATUS_SUCCESS;
    ULONG length = RtlLengthSid(OriginalSid);
    PSID resultSid = NULL;

    status = RTL_ALLOCATE(&resultSid, SID, length);
    GOTO_CLEANUP_ON_STATUS(status);

    RtlCopyMemory(resultSid, OriginalSid, length);

cleanup:
    if (!NT_SUCCESS(status))
    {
        RTL_FREE(&resultSid);
    }

    *NewSid = resultSid;

    return status;
}
开发者ID:borland667,项目名称:pbis,代码行数:25,代码来源:security-sid.c


示例16: LwNtCreateFileComplete

static
VOID
LwNtCreateFileComplete(
    PIO_CLIENT_ASYNC_CONTEXT pBase,
    NTSTATUS status
    )
{
    PCREATEFILE_CONTEXT pContext = (PCREATEFILE_CONTEXT) pBase;
    PNT_IPC_MESSAGE_CREATE_FILE_RESULT pResponse = pBase->out.data;

    if (status == STATUS_SUCCESS)
    {
        *pContext->FileHandle = pResponse->FileHandle;
        pResponse->FileHandle = NULL;
        pContext->IoStatusBlock->Status = pResponse->Status;
        pContext->IoStatusBlock->CreateResult = pResponse->CreateResult;

        status = pContext->IoStatusBlock->Status;
    }
    else
    {
        pContext->IoStatusBlock->Status = status;
    }

    if (pContext->Request.pSecurityToken)
    {
        LwIoDeleteCreds(pContext->Request.pSecurityToken);
    }

    if (pContext->Request.EcpList)
    {
        RTL_FREE(&pContext->Request.EcpList);
    } 
}
开发者ID:FarazShaikh,项目名称:LikewiseSMB2,代码行数:34,代码来源:ntfileapictx.c


示例17: PvfsFreeMemory

VOID
PvfsFreeMemory(
    IN OUT PVOID *ppBuffer
    )
{
    RTL_FREE(ppBuffer);
}
开发者ID:FarazShaikh,项目名称:LikewiseSMB2,代码行数:7,代码来源:alloc.c


示例18: LwRtlAnsiStringFree

VOID
LwRtlAnsiStringFree(
    IN OUT PANSI_STRING pString
    )
{
    RTL_FREE(&pString->Buffer);
    pString->Length = pString->MaximumLength = 0;
}
开发者ID:borland667,项目名称:pbis,代码行数:8,代码来源:rtlstring_ansi.c


示例19: RdrFreeContextArray

VOID
RdrFreeContextArray(
    PRDR_OP_CONTEXT pContexts,
    ULONG ulCount
    )
{
    ULONG ulIndex = 0;

    if (pContexts)
    {
        for (ulIndex = 0; ulIndex < ulCount; ulIndex++)
        {
            RTL_FREE(&pContexts[ulIndex].Packet.pRawBuffer);
        }

        RTL_FREE(&pContexts);
    }
}
开发者ID:virtual-void,项目名称:pbis,代码行数:18,代码来源:driver.c


示例20: TaskDelete

static
VOID
TaskDelete(
    PEPOLL_TASK pTask
    )
{
    RTL_FREE(&pTask->pUnixSignal);
    RtlMemoryFree(pTask);
}
开发者ID:bhanug,项目名称:likewise-open,代码行数:9,代码来源:threadpool-epoll.c



注:本文中的RTL_FREE函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ RTMD函数代码示例发布时间:2022-05-30
下一篇:
C++ RTLU函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap