IMallocSpy::P reRealloc 方法 (objidl.h)

执行调用 IMalloc::Realloc 之前所需的操作。

语法

SIZE_T PreRealloc(
  [in]  void   *pRequest,
  [in]  SIZE_T cbRequest,
  [out] void   **ppNewRequest,
  [in]  BOOL   fSpyed
);

parameters

[in] pRequest

指向调用 IMalloc::Realloc 中指定的内存块的指针。

[in] cbRequest

在对 IMalloc::Realloc 的原始调用中指定的内存块的字节计数。

[out] ppNewRequest

指针变量的地址,该变量接收指向要重新分配的内存块的指针。 如果 PreRealloc 的实现扩展或修改了重新分配,则这可能不同于 pRequest 中的指针。 这是指针应始终由 PreRealloc 存储。

[in] fSpyed

指示此间谍处于活动状态时是否分配了内存块。

返回值

要传递给 IMalloc::Realloc 的字节计数。

注解

PreRealloc 实现可以扩展和/或修改分配,以使用分配存储特定于调试的信息。 因此, ppNewRequest 参数可能与 pRequest 不同,pRequest 是指向对 Realloc 的原始调用中指定的请求的指针。

PreRealloc 可以通过返回 0 来强制内存分配失败,从而允许测试以确保应用程序在所有情况下都能正常处理分配失败。 在这种情况下,不调用 PostRealloc并且 Realloc 返回 NULL。 但是,如果 Realloc 遇到实际内存故障并返回 NULL,则调用 PostRealloc 。 仅当 cbRequest 不等于 0 时,强制分配失败才有效。

要求

   
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 objidl.h

请参阅

IMalloc::Realloc

IMallocSpy

IMallocSpy::P ostRealloc