Package com.sun.jna.platform.win32

## Interface Cfgmgr32

- All Superinterfaces:
    `Library`

      public interface Cfgmgr32
      extends Library

  Windows Cfgmgr32.
  Author:
    widdis[at]gmail[dot]com

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface com.sun.jna.Library

      `Library.Handler`

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static int` | `CM_DRP_ADDRESS` |
    `static int` | `CM_DRP_BASE_CONTAINERID` |
    `static int` | `CM_DRP_BUSNUMBER` |
    `static int` | `CM_DRP_BUSTYPEGUID` |
    `static int` | `CM_DRP_CAPABILITIES` |
    `static int` | `CM_DRP_CHARACTERISTICS` |
    `static int` | `CM_DRP_CLASS` |
    `static int` | `CM_DRP_CLASSGUID` |
    `static int` | `CM_DRP_COMPATIBLEIDS` |
    `static int` | `CM_DRP_CONFIGFLAGS` |
    `static int` | `CM_DRP_DEVICE_POWER_DATA` |
    `static int` | `CM_DRP_DEVICEDESC` |
    `static int` | `CM_DRP_DEVTYPE` |
    `static int` | `CM_DRP_DRIVER` |
    `static int` | `CM_DRP_ENUMERATOR_NAME` |
    `static int` | `CM_DRP_EXCLUSIVE` |
    `static int` | `CM_DRP_FRIENDLYNAME` |
    `static int` | `CM_DRP_HARDWAREID` |
    `static int` | `CM_DRP_INSTALL_STATE` |
    `static int` | `CM_DRP_LEGACYBUSTYPE` |
    `static int` | `CM_DRP_LOCATION_INFORMATION` |
    `static int` | `CM_DRP_LOCATION_PATHS` |
    `static int` | `CM_DRP_LOWERFILTERS` |
    `static int` | `CM_DRP_MFG` |
    `static int` | `CM_DRP_PHYSICAL_DEVICE_OBJECT_NAME` |
    `static int` | `CM_DRP_REMOVAL_POLICY` |
    `static int` | `CM_DRP_REMOVAL_POLICY_HW_DEFAULT` |
    `static int` | `CM_DRP_REMOVAL_POLICY_OVERRIDE` |
    `static int` | `CM_DRP_SECURITY` |
    `static int` | `CM_DRP_SECURITY_SDS` |
    `static int` | `CM_DRP_SERVICE` |
    `static int` | `CM_DRP_UI_NUMBER` |
    `static int` | `CM_DRP_UI_NUMBER_DESC_FORMAT` |
    `static int` | `CM_DRP_UPPERFILTERS` |
    `static int` | `CM_LOCATE_DEVNODE_BITS` |
    `static int` | `CM_LOCATE_DEVNODE_CANCELREMOVE` |
    `static int` | `CM_LOCATE_DEVNODE_NORMAL` |
    `static int` | `CM_LOCATE_DEVNODE_NOVALIDATION` |
    `static int` | `CM_LOCATE_DEVNODE_PHANTOM` |
    `static int` | `CR_ACCESS_DENIED` |
    `static int` | `CR_ALREADY_SUCH_DEVINST` |
    `static int` | `CR_ALREADY_SUCH_DEVNODE` |
    `static int` | `CR_APM_VETOED` |
    `static int` | `CR_BUFFER_SMALL` |
    `static int` | `CR_CALL_NOT_IMPLEMENTED` |
    `static int` | `CR_CANT_SHARE_IRQ` |
    `static int` | `CR_CREATE_BLOCKED` |
    `static int` | `CR_DEFAULT` |
    `static int` | `CR_DEVICE_INTERFACE_ACTIVE` |
    `static int` | `CR_DEVICE_NOT_THERE` |
    `static int` | `CR_DEVINST_HAS_REQS` |
    `static int` | `CR_DEVLOADER_NOT_READY` |
    `static int` | `CR_DEVNODE_HAS_REQS` |
    `static int` | `CR_DLVXD_NOT_FOUND` |
    `static int` | `CR_FAILURE` |
    `static int` | `CR_FREE_RESOURCES` |
    `static int` | `CR_INVALID_API` |
    `static int` | `CR_INVALID_ARBITRATOR` |
    `static int` | `CR_INVALID_CONFLICT_LIST` |
    `static int` | `CR_INVALID_DATA` |
    `static int` | `CR_INVALID_DEVICE_ID` |
    `static int` | `CR_INVALID_DEVINST` |
    `static int` | `CR_INVALID_DEVNODE` |
    `static int` | `CR_INVALID_FLAG` |
    `static int` | `CR_INVALID_INDEX` |
    `static int` | `CR_INVALID_LOAD_TYPE` |
    `static int` | `CR_INVALID_LOG_CONF` |
    `static int` | `CR_INVALID_MACHINENAME` |
    `static int` | `CR_INVALID_NODELIST` |
    `static int` | `CR_INVALID_POINTER` |
    `static int` | `CR_INVALID_PRIORITY` |
    `static int` | `CR_INVALID_PROPERTY` |
    `static int` | `CR_INVALID_RANGE` |
    `static int` | `CR_INVALID_RANGE_LIST` |
    `static int` | `CR_INVALID_REFERENCE_STRING` |
    `static int` | `CR_INVALID_RES_DES` |
    `static int` | `CR_INVALID_RESOURCEID` |
    `static int` | `CR_INVALID_STRUCTURE_SIZE` |
    `static int` | `CR_MACHINE_UNAVAILABLE` |
    `static int` | `CR_NEED_RESTART` |
    `static int` | `CR_NO_ARBITRATOR` |
    `static int` | `CR_NO_CM_SERVICES` |
    `static int` | `CR_NO_DEPENDENT` |
    `static int` | `CR_NO_MORE_HW_PROFILES` |
    `static int` | `CR_NO_MORE_LOG_CONF` |
    `static int` | `CR_NO_MORE_RES_DES` |
    `static int` | `CR_NO_REGISTRY_HANDLE` |
    `static int` | `CR_NO_SUCH_DEVICE_INTERFACE` |
    `static int` | `CR_NO_SUCH_DEVINST` |
    `static int` | `CR_NO_SUCH_DEVNODE` |
    `static int` | `CR_NO_SUCH_LOGICAL_DEV` |
    `static int` | `CR_NO_SUCH_REGISTRY_KEY` |
    `static int` | `CR_NO_SUCH_VALUE` |
    `static int` | `CR_NOT_DISABLEABLE` |
    `static int` | `CR_NOT_SYSTEM_VM` |
    `static int` | `CR_OUT_OF_MEMORY` |
    `static int` | `CR_QUERY_VETOED` |
    `static int` | `CR_REGISTRY_ERROR` |
    `static int` | `CR_REMOTE_COMM_FAILURE` |
    `static int` | `CR_REMOVE_VETOED` |
    `static int` | `CR_SAME_RESOURCES` |
    `static int` | `CR_SUCCESS` |
    `static int` | `CR_WRONG_TYPE` |
    `static Cfgmgr32` | `INSTANCE` |
    `static int` | `NUM_CR_RESULTS` |

    - ### Fields inherited from interface com.sun.jna.Library

      `OPTION_ALLOW_OBJECTS, OPTION_CALLING_CONVENTION, OPTION_CLASSLOADER, OPTION_FUNCTION_MAPPER, OPTION_INVOCATION_MAPPER, OPTION_OPEN_FLAGS, OPTION_STRING_ENCODING, OPTION_STRUCTURE_ALIGNMENT, OPTION_TYPE_MAPPER`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `int` | `CM_Get_Child​(IntByReference pdnDevInst, int dnDevInst, int ulFlags)` | The CM_Get_Child function is used to retrieve a device instance handle to the first child node of a specified device node (devnode) in the local machine's device tree.
    `int` | `CM_Get_Device_ID​(int devInst, Pointer Buffer, int BufferLen, int ulFlags)` | The CM_Get_Device_ID function retrieves the device instance ID for a specified device instance on the local machine.
    `int` | `CM_Get_Device_ID_Size​(IntByReference pulLen, int dnDevInst, int ulFlags)` | The CM_Get_Device_ID_Size function retrieves the buffer size required to hold a device instance ID for a device instance on the local machine.
    `int` | `CM_Get_DevNode_Registry_Property​(int dnDevInst, int ulProperty, IntByReference pulRegDataType, Pointer buffer, IntByReference pulLength, int ulFlags)` | The CM_Get_DevNode_Registry_Property function retrieves a specified device property from the registry.
    `int` | `CM_Get_Parent​(IntByReference pdnDevInst, int dnDevInst, int ulFlags)` | The CM_Get_Parent function obtains a device instance handle to the parent node of a specified device node (devnode) in the local machine's device tree.
    `int` | `CM_Get_Sibling​(IntByReference pdnDevInst, int dnDevInst, int ulFlags)` | The CM_Get_Sibling function obtains a device instance handle to the next sibling node of a specified device node (devnode) in the local machine's device tree.
    `int` | `CM_Locate_DevNode​(IntByReference pdnDevInst, java.lang.String pDeviceID, int ulFlags)` | The CM_Locate_DevNode function obtains a device instance handle to the device node that is associated with a specified device instance ID on the local machine.

- - ### Field Detail

    - #### INSTANCE

          static final Cfgmgr32 INSTANCE

    - #### CR_SUCCESS

          static final int CR_SUCCESS

      See Also:
        Constant Field Values

    - #### CR_DEFAULT

          static final int CR_DEFAULT

      See Also:
        Constant Field Values

    - #### CR_OUT_OF_MEMORY

          static final int CR_OUT_OF_MEMORY

      See Also:
        Constant Field Values

    - #### CR_INVALID_POINTER

          static final int CR_INVALID_POINTER

      See Also:
        Constant Field Values

    - #### CR_INVALID_FLAG

          static final int CR_INVALID_FLAG

      See Also:
        Constant Field Values

    - #### CR_INVALID_DEVNODE

          static final int CR_INVALID_DEVNODE

      See Also:
        Constant Field Values

    - #### CR_INVALID_DEVINST

          static final int CR_INVALID_DEVINST

      See Also:
        Constant Field Values

    - #### CR_INVALID_RES_DES

          static final int CR_INVALID_RES_DES

      See Also:
        Constant Field Values

    - #### CR_INVALID_LOG_CONF

          static final int CR_INVALID_LOG_CONF

      See Also:
        Constant Field Values

    - #### CR_INVALID_ARBITRATOR

          static final int CR_INVALID_ARBITRATOR

      See Also:
        Constant Field Values

    - #### CR_INVALID_NODELIST

          static final int CR_INVALID_NODELIST

      See Also:
        Constant Field Values

    - #### CR_DEVNODE_HAS_REQS

          static final int CR_DEVNODE_HAS_REQS

      See Also:
        Constant Field Values

    - #### CR_DEVINST_HAS_REQS

          static final int CR_DEVINST_HAS_REQS

      See Also:
        Constant Field Values

    - #### CR_INVALID_RESOURCEID

          static final int CR_INVALID_RESOURCEID

      See Also:
        Constant Field Values

    - #### CR_DLVXD_NOT_FOUND

          static final int CR_DLVXD_NOT_FOUND

      See Also:
        Constant Field Values

    - #### CR_NO_SUCH_DEVNODE

          static final int CR_NO_SUCH_DEVNODE

      See Also:
        Constant Field Values

    - #### CR_NO_SUCH_DEVINST

          static final int CR_NO_SUCH_DEVINST

      See Also:
        Constant Field Values

    - #### CR_NO_MORE_LOG_CONF

          static final int CR_NO_MORE_LOG_CONF

      See Also:
        Constant Field Values

    - #### CR_NO_MORE_RES_DES

          static final int CR_NO_MORE_RES_DES

      See Also:
        Constant Field Values

    - #### CR_ALREADY_SUCH_DEVNODE

          static final int CR_ALREADY_SUCH_DEVNODE

      See Also:
        Constant Field Values

    - #### CR_ALREADY_SUCH_DEVINST

          static final int CR_ALREADY_SUCH_DEVINST

      See Also:
        Constant Field Values

    - #### CR_INVALID_RANGE_LIST

          static final int CR_INVALID_RANGE_LIST

      See Also:
        Constant Field Values

    - #### CR_INVALID_RANGE

          static final int CR_INVALID_RANGE

      See Also:
        Constant Field Values

    - #### CR_FAILURE

          static final int CR_FAILURE

      See Also:
        Constant Field Values

    - #### CR_NO_SUCH_LOGICAL_DEV

          static final int CR_NO_SUCH_LOGICAL_DEV

      See Also:
        Constant Field Values

    - #### CR_CREATE_BLOCKED

          static final int CR_CREATE_BLOCKED

      See Also:
        Constant Field Values

    - #### CR_NOT_SYSTEM_VM

          static final int CR_NOT_SYSTEM_VM

      See Also:
        Constant Field Values

    - #### CR_REMOVE_VETOED

          static final int CR_REMOVE_VETOED

      See Also:
        Constant Field Values

    - #### CR_APM_VETOED

          static final int CR_APM_VETOED

      See Also:
        Constant Field Values

    - #### CR_INVALID_LOAD_TYPE

          static final int CR_INVALID_LOAD_TYPE

      See Also:
        Constant Field Values

    - #### CR_BUFFER_SMALL

          static final int CR_BUFFER_SMALL

      See Also:
        Constant Field Values

    - #### CR_NO_ARBITRATOR

          static final int CR_NO_ARBITRATOR

      See Also:
        Constant Field Values

    - #### CR_NO_REGISTRY_HANDLE

          static final int CR_NO_REGISTRY_HANDLE

      See Also:
        Constant Field Values

    - #### CR_REGISTRY_ERROR

          static final int CR_REGISTRY_ERROR

      See Also:
        Constant Field Values

    - #### CR_INVALID_DEVICE_ID

          static final int CR_INVALID_DEVICE_ID

      See Also:
        Constant Field Values

    - #### CR_INVALID_DATA

          static final int CR_INVALID_DATA

      See Also:
        Constant Field Values

    - #### CR_INVALID_API

          static final int CR_INVALID_API

      See Also:
        Constant Field Values

    - #### CR_DEVLOADER_NOT_READY

          static final int CR_DEVLOADER_NOT_READY

      See Also:
        Constant Field Values

    - #### CR_NEED_RESTART

          static final int CR_NEED_RESTART

      See Also:
        Constant Field Values

    - #### CR_NO_MORE_HW_PROFILES

          static final int CR_NO_MORE_HW_PROFILES

      See Also:
        Constant Field Values

    - #### CR_DEVICE_NOT_THERE

          static final int CR_DEVICE_NOT_THERE

      See Also:
        Constant Field Values

    - #### CR_NO_SUCH_VALUE

          static final int CR_NO_SUCH_VALUE

      See Also:
        Constant Field Values

    - #### CR_WRONG_TYPE

          static final int CR_WRONG_TYPE

      See Also:
        Constant Field Values

    - #### CR_INVALID_PRIORITY

          static final int CR_INVALID_PRIORITY

      See Also:
        Constant Field Values

    - #### CR_NOT_DISABLEABLE

          static final int CR_NOT_DISABLEABLE

      See Also:
        Constant Field Values

    - #### CR_FREE_RESOURCES

          static final int CR_FREE_RESOURCES

      See Also:
        Constant Field Values

    - #### CR_QUERY_VETOED

          static final int CR_QUERY_VETOED

      See Also:
        Constant Field Values

    - #### CR_CANT_SHARE_IRQ

          static final int CR_CANT_SHARE_IRQ

      See Also:
        Constant Field Values

    - #### CR_NO_DEPENDENT

          static final int CR_NO_DEPENDENT

      See Also:
        Constant Field Values

    - #### CR_SAME_RESOURCES

          static final int CR_SAME_RESOURCES

      See Also:
        Constant Field Values

    - #### CR_NO_SUCH_REGISTRY_KEY

          static final int CR_NO_SUCH_REGISTRY_KEY

      See Also:
        Constant Field Values

    - #### CR_INVALID_MACHINENAME

          static final int CR_INVALID_MACHINENAME

      See Also:
        Constant Field Values

    - #### CR_REMOTE_COMM_FAILURE

          static final int CR_REMOTE_COMM_FAILURE

      See Also:
        Constant Field Values

    - #### CR_MACHINE_UNAVAILABLE

          static final int CR_MACHINE_UNAVAILABLE

      See Also:
        Constant Field Values

    - #### CR_NO_CM_SERVICES

          static final int CR_NO_CM_SERVICES

      See Also:
        Constant Field Values

    - #### CR_ACCESS_DENIED

          static final int CR_ACCESS_DENIED

      See Also:
        Constant Field Values

    - #### CR_CALL_NOT_IMPLEMENTED

          static final int CR_CALL_NOT_IMPLEMENTED

      See Also:
        Constant Field Values

    - #### CR_INVALID_PROPERTY

          static final int CR_INVALID_PROPERTY

      See Also:
        Constant Field Values

    - #### CR_DEVICE_INTERFACE_ACTIVE

          static final int CR_DEVICE_INTERFACE_ACTIVE

      See Also:
        Constant Field Values

    - #### CR_NO_SUCH_DEVICE_INTERFACE

          static final int CR_NO_SUCH_DEVICE_INTERFACE

      See Also:
        Constant Field Values

    - #### CR_INVALID_REFERENCE_STRING

          static final int CR_INVALID_REFERENCE_STRING

      See Also:
        Constant Field Values

    - #### CR_INVALID_CONFLICT_LIST

          static final int CR_INVALID_CONFLICT_LIST

      See Also:
        Constant Field Values

    - #### CR_INVALID_INDEX

          static final int CR_INVALID_INDEX

      See Also:
        Constant Field Values

    - #### CR_INVALID_STRUCTURE_SIZE

          static final int CR_INVALID_STRUCTURE_SIZE

      See Also:
        Constant Field Values

    - #### NUM_CR_RESULTS

          static final int NUM_CR_RESULTS

      See Also:
        Constant Field Values

    - #### CM_LOCATE_DEVNODE_NORMAL

          static final int CM_LOCATE_DEVNODE_NORMAL

      See Also:
        Constant Field Values

    - #### CM_LOCATE_DEVNODE_PHANTOM

          static final int CM_LOCATE_DEVNODE_PHANTOM

      See Also:
        Constant Field Values

    - #### CM_LOCATE_DEVNODE_CANCELREMOVE

          static final int CM_LOCATE_DEVNODE_CANCELREMOVE

      See Also:
        Constant Field Values

    - #### CM_LOCATE_DEVNODE_NOVALIDATION

          static final int CM_LOCATE_DEVNODE_NOVALIDATION

      See Also:
        Constant Field Values

    - #### CM_LOCATE_DEVNODE_BITS

          static final int CM_LOCATE_DEVNODE_BITS

      See Also:
        Constant Field Values

    - #### CM_DRP_DEVICEDESC

          static final int CM_DRP_DEVICEDESC

      See Also:
        Constant Field Values

    - #### CM_DRP_HARDWAREID

          static final int CM_DRP_HARDWAREID

      See Also:
        Constant Field Values

    - #### CM_DRP_COMPATIBLEIDS

          static final int CM_DRP_COMPATIBLEIDS

      See Also:
        Constant Field Values

    - #### CM_DRP_SERVICE

          static final int CM_DRP_SERVICE

      See Also:
        Constant Field Values

    - #### CM_DRP_CLASS

          static final int CM_DRP_CLASS

      See Also:
        Constant Field Values

    - #### CM_DRP_CLASSGUID

          static final int CM_DRP_CLASSGUID

      See Also:
        Constant Field Values

    - #### CM_DRP_DRIVER

          static final int CM_DRP_DRIVER

      See Also:
        Constant Field Values

    - #### CM_DRP_CONFIGFLAGS

          static final int CM_DRP_CONFIGFLAGS

      See Also:
        Constant Field Values

    - #### CM_DRP_MFG

          static final int CM_DRP_MFG

      See Also:
        Constant Field Values

    - #### CM_DRP_FRIENDLYNAME

          static final int CM_DRP_FRIENDLYNAME

      See Also:
        Constant Field Values

    - #### CM_DRP_LOCATION_INFORMATION

          static final int CM_DRP_LOCATION_INFORMATION

      See Also:
        Constant Field Values

    - #### CM_DRP_PHYSICAL_DEVICE_OBJECT_NAME

          static final int CM_DRP_PHYSICAL_DEVICE_OBJECT_NAME

      See Also:
        Constant Field Values

    - #### CM_DRP_CAPABILITIES

          static final int CM_DRP_CAPABILITIES

      See Also:
        Constant Field Values

    - #### CM_DRP_UI_NUMBER

          static final int CM_DRP_UI_NUMBER

      See Also:
        Constant Field Values

    - #### CM_DRP_UPPERFILTERS

          static final int CM_DRP_UPPERFILTERS

      See Also:
        Constant Field Values

    - #### CM_DRP_LOWERFILTERS

          static final int CM_DRP_LOWERFILTERS

      See Also:
        Constant Field Values

    - #### CM_DRP_BUSTYPEGUID

          static final int CM_DRP_BUSTYPEGUID

      See Also:
        Constant Field Values

    - #### CM_DRP_LEGACYBUSTYPE

          static final int CM_DRP_LEGACYBUSTYPE

      See Also:
        Constant Field Values

    - #### CM_DRP_BUSNUMBER

          static final int CM_DRP_BUSNUMBER

      See Also:
        Constant Field Values

    - #### CM_DRP_ENUMERATOR_NAME

          static final int CM_DRP_ENUMERATOR_NAME

      See Also:
        Constant Field Values

    - #### CM_DRP_SECURITY

          static final int CM_DRP_SECURITY

      See Also:
        Constant Field Values

    - #### CM_DRP_SECURITY_SDS

          static final int CM_DRP_SECURITY_SDS

      See Also:
        Constant Field Values

    - #### CM_DRP_DEVTYPE

          static final int CM_DRP_DEVTYPE

      See Also:
        Constant Field Values

    - #### CM_DRP_EXCLUSIVE

          static final int CM_DRP_EXCLUSIVE

      See Also:
        Constant Field Values

    - #### CM_DRP_CHARACTERISTICS

          static final int CM_DRP_CHARACTERISTICS

      See Also:
        Constant Field Values

    - #### CM_DRP_ADDRESS

          static final int CM_DRP_ADDRESS

      See Also:
        Constant Field Values

    - #### CM_DRP_UI_NUMBER_DESC_FORMAT

          static final int CM_DRP_UI_NUMBER_DESC_FORMAT

      See Also:
        Constant Field Values

    - #### CM_DRP_DEVICE_POWER_DATA

          static final int CM_DRP_DEVICE_POWER_DATA

      See Also:
        Constant Field Values

    - #### CM_DRP_REMOVAL_POLICY

          static final int CM_DRP_REMOVAL_POLICY

      See Also:
        Constant Field Values

    - #### CM_DRP_REMOVAL_POLICY_HW_DEFAULT

          static final int CM_DRP_REMOVAL_POLICY_HW_DEFAULT

      See Also:
        Constant Field Values

    - #### CM_DRP_REMOVAL_POLICY_OVERRIDE

          static final int CM_DRP_REMOVAL_POLICY_OVERRIDE

      See Also:
        Constant Field Values

    - #### CM_DRP_INSTALL_STATE

          static final int CM_DRP_INSTALL_STATE

      See Also:
        Constant Field Values

    - #### CM_DRP_LOCATION_PATHS

          static final int CM_DRP_LOCATION_PATHS

      See Also:
        Constant Field Values

    - #### CM_DRP_BASE_CONTAINERID

          static final int CM_DRP_BASE_CONTAINERID

      See Also:
        Constant Field Values

  - ### Method Detail

    - #### CM_Locate_DevNode

          int CM_Locate_DevNode​(IntByReference pdnDevInst,
                                java.lang.String pDeviceID,
                                int ulFlags)

      The CM_Locate_DevNode function obtains a device instance handle to the device node that is associated with a specified device instance ID on the local machine.
      Parameters:
        `pdnDevInst` - A pointer to a device instance handle that CM_Locate_DevNode retrieves. The retrieved handle is bound to the local machine.
        `pDeviceID` - A pointer to a NULL-terminated string representing a device instance ID. If this value is NULL, or if it points to a zero-length string, the function retrieves a device instance handle to the device at the root of the device tree. *
        `ulFlags` - A variable of ULONG type that supplies one of the following flag values that apply if the caller supplies a device instance identifier: CM_LOCATE_DEVNODE_NORMAL, CM_LOCATE_DEVNODE_PHANTOM, CM_LOCATE_DEVNODE_CANCELREMOVE, or CM_LOCATE_DEVNODE_NOVALIDATION
      Returns:
        If the operation succeeds, CM_Locate_DevNode returns CR_SUCCESS. Otherwise, the function returns one of the CR_Xxx error codes that are defined in Cfgmgr32.h.
      See Also:
        CM_Locate_DevNode

    - #### CM_Get_Parent

          int CM_Get_Parent​(IntByReference pdnDevInst,
                            int dnDevInst,
                            int ulFlags)

      The CM_Get_Parent function obtains a device instance handle to the parent node of a specified device node (devnode) in the local machine's device tree.
      Parameters:
        `pdnDevInst` - Caller-supplied pointer to the device instance handle to the parent node that this function retrieves. The retrieved handle is bound to the local machine.
        `dnDevInst` - Caller-supplied device instance handle that is bound to the local machine.
        `ulFlags` - Not used, must be zero.
      Returns:
        If the operation succeeds, the function returns CR_SUCCESS. Otherwise, it returns one of the CR_-prefixed error codes defined in Cfgmgr32.h.
      See Also:
        CM_Get_Parent

    - #### CM_Get_Child

          int CM_Get_Child​(IntByReference pdnDevInst,
                           int dnDevInst,
                           int ulFlags)

      The CM_Get_Child function is used to retrieve a device instance handle to the first child node of a specified device node (devnode) in the local machine's device tree.
      Parameters:
        `pdnDevInst` - Caller-supplied pointer to the device instance handle to the child node that this function retrieves. The retrieved handle is bound to the local machine.
        `dnDevInst` - Caller-supplied device instance handle that is bound to the local machine.
        `ulFlags` - Not used, must be zero.
      Returns:
        If the operation succeeds, the function returns CR_SUCCESS. Otherwise, it returns one of the CR_-prefixed error codes defined in Cfgmgr32.h.
      See Also:
        CM_Get_Child

    - #### CM_Get_Sibling

          int CM_Get_Sibling​(IntByReference pdnDevInst,
                             int dnDevInst,
                             int ulFlags)

      The CM_Get_Sibling function obtains a device instance handle to the next sibling node of a specified device node (devnode) in the local machine's device tree.
      Parameters:
        `pdnDevInst` - Caller-supplied pointer to the device instance handle to the sibling node that this function retrieves. The retrieved handle is bound to the local machine.
        `dnDevInst` - Caller-supplied device instance handle that is bound to the local machine.
        `ulFlags` - Not used, must be zero.
      Returns:
        If the operation succeeds, the function returns CR_SUCCESS. Otherwise, it returns one of the CR_-prefixed error codes defined in Cfgmgr32.h.
      See Also:
        CM_Get_Sibling

    - #### CM_Get_Device_ID

          int CM_Get_Device_ID​(int devInst,
                               Pointer Buffer,
                               int BufferLen,
                               int ulFlags)

      The CM_Get_Device_ID function retrieves the device instance ID for a specified device instance on the local machine.
      Parameters:
        `devInst` - Caller-supplied device instance handle that is bound to the local machine.
        `Buffer` - Address of a buffer to receive a device instance ID string. The required buffer size can be obtained by calling CM_Get_Device_ID_Size, then incrementing the received value to allow room for the string's terminating NULL.
        `BufferLen` - Caller-supplied length, in characters, of the buffer specified by Buffer.
        `ulFlags` - Not used, must be zero.
      Returns:
        If the operation succeeds, the function returns CR_SUCCESS. Otherwise, it returns one of the CR_-prefixed error codes defined in Cfgmgr32.h.
      See Also:
        CM_Get_Device_ID

    - #### CM_Get_Device_ID_Size

          int CM_Get_Device_ID_Size​(IntByReference pulLen,
                                    int dnDevInst,
                                    int ulFlags)

      The CM_Get_Device_ID_Size function retrieves the buffer size required to hold a device instance ID for a device instance on the local machine.
      Parameters:
        `pulLen` - Receives a value representing the required buffer size, in characters.
        `dnDevInst` - Caller-supplied device instance handle that is bound to the local machine.
        `ulFlags` - Not used, must be zero.
      Returns:
        If the operation succeeds, the function returns CR_SUCCESS. Otherwise, it returns one of the CR_-prefixed error codes defined in Cfgmgr32.h.
      See Also:
        CM_Get_Device_ID_Size

    - #### CM_Get_DevNode_Registry_Property

          int CM_Get_DevNode_Registry_Property​(int dnDevInst,
                                               int ulProperty,
                                               IntByReference pulRegDataType,
                                               Pointer buffer,
                                               IntByReference pulLength,
                                               int ulFlags)

      The CM_Get_DevNode_Registry_Property function retrieves a specified device property from the registry.
      Parameters:
        `dnDevInst` - A caller-supplied device instance handle that is bound to the local machine.
        `ulProperty` - A `CM_DRP_`-prefixed constant value that identifies the device property to be obtained from the registry. These constants are defined in Cfgmgr32.h.
        `pulRegDataType` - Optional, can be `null`. A pointer to a location that receives the registry data type, specified as a `REG_`-prefixed constant defined in Winnt.h.
        `buffer` - Optional, can be `null`. A pointer to a caller-supplied buffer that receives the requested device property. If this value is `null`, the function supplies only the length of the requested data in the address pointed to by `pulLength`.
        `pulLength` - A pointer to a `ULONG` variable into which the function stores the length, in bytes, of the requested device property.

        If the Buffer parameter is set to `null`, the ULONG variable must be set to zero.

        If the Buffer parameter is not set to `null`, the `ULONG` variable must be set to the length, in bytes, of the caller-supplied buffer.

        `ulFlags` - Not used, must be zero.
      Returns:
        If the operation succeeds, the function returns `CR_SUCCESS`. Otherwise, it returns one of the `CR_`-prefixed error codes that are defined in Cfgmgr32.h.