Compartilhar via


DuplicatedBuffer_t

Windows Mobile Not SupportedWindows Embedded CE Supported

9/8/2008

Essa classe é um wrapper para o CeAllocDuplicateBuffer e as funções CeFreeDuplicateBuffer. Ele deve apenas ser chamado com parâmetros API que já tenham sido Access-checked e automaticamente empacotado, se necessário, pelo kernel. Todos os outra duplicação pode ser feita pela função MarshalledBuffer_t.

Métodos

Método
DuplicatedBuffer_t();
DuplicatedBuffer_t(
    PVOID  pSrcMarshalled,
    DWORD cbSrc,
    DWORD ArgumentDescriptor
);
DuplicatedBuffer_t(
    PCVOID pSrcMarshalled,
    DWORD cbSrc,
    DWORD ArgumentDescriptor
);
~DuplicatedBuffer_t();
HRESULT Free();
HRESULT Allocate(
    PVOID pSrcMarshalled,
    DWORD cbSrc,
    DWORD ArgumentDescriptor
);
HRESULT Allocate(
    PCVOID pSrcMarshalled,
    DWORD cbSrc,
    DWORD ArgumentDescriptor
);
LPVOID ptr() const;
DWORD size() const;

Remarks

Você pode ambos chamar o construtor para fazer a duplicação ou usar o construtor usar como padrão, e duplicado usando o Alocar método. Se um HRESULT é exigido, use Alocar. Da mesma forma, você pode permitir que o destrutor para versão o duplicado memória ou usar o Livre método. Se um HRESULT é exigido, use Livre. Se Alocar falhar, PTR retorna NULL, e tamanho Retorna zero. Caso contrário, a reserva duplicada é acessível com PTR e tamanho. Uma vez um DuplicatedBuffer é alocado usando o construtor ou a Alocar método, ele não pode ser reutilizado por chamado Alocar até depois Livre é chamado. Tentar fazer isso retornará ERROR_ALREADY_EXISTS. Se a reserva não está atualmente alocada, Livre falha e retorna ERROR_ALREADY_EXISTS. Para obter mais informações sobre a operação das Alocar e Livre métodos, consulte CeAllocDuplicateBuffer e CeFreeDuplicateBuffer.

Requisitos

Header marshal.hpp
Library coredll.lib
Windows Embedded CE Windows Embedded CE 6.0 and later

See Also

Reference

Kernel Buffer Marshaling Classes
CeAllocDuplicateBuffer
CeFreeDuplicateBuffer
MarshalledBuffer_t

Other Resources

Developing a Device Driver
Kernel Migration
Bringing Up a Hardware Platform