Compartilhar via


DuplicateHandle

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Essa função duplica um objeto identificador. O duplicado identificador se refere ao mesmo objeto como o original identificador. Portanto, quaisquer alterações para o objeto são refletidas por ambas as alças.

Syntax

  BOOL DuplicateHandle(
  HANDLE hSourceProcessHandle,
  HANDLE hSourceHandle,
  HANDLE hTargetProcessHandle,
  LPHANDLE lpTargetHandle,
  DWORD dwDesiredAccess,
  BOOL bInheritHandle,
  DWORD dwOptions
);

Parameters

  • hSourceProcessHandle
    [no] Identificador para o processo com o identificador para duplicado.
  • hSourceHandle
    [no] Identificador duplicado. Este é um aberto identificador objeto que é válido no contexto do processo de origem. Para obter uma lista de objetos cujas alças podem ser duplicadas, consulte a seção " Comentários ".
  • hTargetProcessHandle
    [no] Identificador para o processo que deve receber o identificador duplicado. O identificador precisa acessar PROCESS_DUP_HANDLE.
  • lpTargetHandle
    [out] Ponteiro para uma variável que recebe o valor do duplicado identificador. Este valor identificador é válido no contexto do processo de destino. Não pode ser NULL.
  • dwDesiredAccess
    [no] No momento ignorado em Windows Embedded CE.
  • bInheritHandle
    [no] Indica se o identificador é herdável. Deve ser definido como FALSE.

    Se FALSE, o novo identificador não pode ser herdada.

  • dwOptions
    [no] Especifica opcional ações. Este parâmetro pode ser qualquer combinação do seguinte sinalizadores que inclui DUPLICATE_SAME_ACCESS.

    Valor Descrição

    DUPLICATE_CLOSE_SOURCE

    Fecha o identificador origem. Isso ocorre regardless of qualquer status de erro retornado.

    DUPLICATE_SAME_ACCESS

    O duplicado identificador tem o mesmo acessar como identificador de origem. Esse sinalizador deve ser especificado para Windows Embedded CE.

Return Value

Nonzero indica sucesso. Zero indica falha. Para informações de erro estendidas get, chamar GetLastError.

Remarks

Para todas as plataformas

O processo de origem ou o processo destino pode chamar DuplicateHandle, que também pode ser chamado onde a origem e destino processo são os mesmos.

O processo de duplicação usa a função GetCurrentProcess para get um identificador de si mesmo. Para get a outro identificador processo, ele talvez seja necessário usar alguma forma de entre processos a comunicação, de exemplo, compartilhada memória, para se comunicar o identificador processo para o processo de duplicação. Esse identificador, em seguida, é usado na função OpenProcess para aberto um identificador.

Se o processo que chama DuplicateHandle não é o processo destino, o processo de duplicação deve usar entre processos comunicação para transmitir o valor do duplicado identificador para o processo destino.

Para Windows incorporado CE

DuplicateHandle Pode duplicado todos manipula real, não apenas controla a eventos retornados pela CreateEvent ou OpenEvent, alças para exclusões mútuas retornado por CreateMutexe manipula a semáforos retornados por CreateSemaphore. Todos os identificadores reais incluem: Alças evento alças mutex alças fila de mensagens, apiset alças, alças arquivo, alças DBFile, Alças do semáforo, memória mapa (n.); mapear (v.) alças, alças de monitoração, processo alças, alças segmento, token alças e quaisquer identificadores gerados por um servidor identificador. Além disso, são pseudo-Handles com suporte. **

Para Mobile Windows

DuplicateHandle Pode duplicado manipula para eventos retornados pela CreateEvent ou OpenEvent, alças para exclusões mútuas retornado por CreateMutexe controla a semáforos retornados por CreateSemaphore.

Requirements

Header windows.h
Library coredll.lib
Windows Embedded CE Windows CE .NET 4.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also

Reference

Synchronization Functions
OpenProcess
CreateEvent
OpenEvent
CreateMutex
CreateProcess
GetCurrentProcess
CreateSemaphore
CreateThread
GetCurrentThread

Other Resources

CreateFileMapping
CloseHandle