Share via


CeDriverDuplicateCallerHandle

Other versions of this page are also available for the following:

Windows Mobile Not SupportedWindows Embedded CE Supported

8/28/2008

This function is used to duplicate a handle passed in by the calling application. A common usage of this function is to duplicate a notification handle in order to signal the completion of IO. The passed handle usually belongs to the calling applications process.

Syntax

HANDLE CeDriverDuplicateCallerHandle(
    HANDLE DirectCallerHandle,
  DWORD dwDesiredAccess,
    BOOL bInheritHandle,
    DWORD dwOptions
);

Parameters

  • DirectCallerHandle
    [in] Specifies a handle to the Direct Caller that the driver wants to duplicate.
  • dwDesiredAccess
    [in] Specifies the access requested for the new handle. If the dwOptions parameter specifies the DUPLICATE_SAME_ACCESS flag, then the dwDesiredAccess parameter is ignored. Windows Embedded CE 6.0 requires that the DUPLICATE_SAME_ACCESS flag is always set.
  • bInheritHandle
    [in] Indicates whether the handle is inheritable. Must be set to FALSE. If FALSE, the new handle cannot be inherited.
  • dwOptions
    [in] Specifies optional actions. This value can be zero or any combination of the values in the following table.

    Value Description

    DUPLICATE_CLOSE_SOURCE

    Closes the source handle regardless of any error status returned.

    DUPLICATE_SAME_ACCESS

    Ignores the dwDesiredAccess parameter. The duplicate handle has the same access as the source handle. This flag must be specified for Windows Embedded CE 6.0

Return Value

Returns a handle to the event object on success. Returns NULL on failure. For extended error information, call GetLastError

Remarks

If CeDriverDuplicateCallerHandle is called from kernel mode, DuplicateHandle is used. However, if this function is called from a User Mode Driver, the function will be routed to the kernel mode reflector, which will duplicate the caller handle and return it to the User Mode Driver. For more information when using this function with a User Mode Driver, see User Mode Driver Reflector.

Requirements

Header ceddk.h
Library CEDDK.lib
Windows Embedded CE Windows Embedded CE 6.0 and later

See Also

Other Resources

User Mode Driver Framework