Desktop Functions:

   Smart Device Functions:

Show Recent Changes
Subscribe (RSS)
Misc. Pages
Helpful Tools
Suggested Reading
Website TODO List
Support Forum
Download Visual Studio Add-In

Terms of Use
Privacy Policy
CM_Query_And_Remove_SubTree_Ex (cfgmgr32)
Checks whether a device instance and its children can be removed and, if so, it removes them. If the operation succeeds, the function returns CR_SUCCESS. Otherwise it returns one of the error codes with "CR_" prefix that are defined in Cfgmgr32.h

C# Signature:

[DllImport("Cfgmgr32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
static extern int CM_Query_And_Remove_SubTree_Ex(
    int deviceInstance,
    out PnpVetoType vetoType,
    StringBuilder vetoName,
    uint vetoNameLength,
    CMQueryAndRemoveSubtreeExFlags flags,
    IntPtr machine);


deviceInstance, Caller-supplied device instance handle to the device at the root of the subtree to be removed. This device instance handle is bound to the machine handle supplied by hMachine.

vetoType, If not NULL, this points to a location that, if the removal request fails, receives a PNP_VETO_TYPE-typed value indicating the reason for the failure.

vetoName, If not NULL, this is a caller-supplied pointer to a string buffer that receives a text string. The type of information this string provides is dependent on the value received by pVetoType. For information about these strings, see PNP_VETO_TYPE.

vetoNameLength, Caller-supplied value representing the length (number of characters) of the string buffer supplied by pszVetoName. This should be set to MAX_PATH.

flags, A bitwise OR of the caller-supplied flag constants that are described in the Remarks section.

machine, Caller-supplied machine handle to which the caller-supplied device instance handle is bound.

VB Signature:

Declare Function CM_Query_And_Remove_SubTree_Ex Lib "cfgmgr32.dll" (TODO) As TODO

User-Defined Types:


Alternative Managed API:

Do you know one? Please contribute it!



Tips & Tricks:

Please add some!

Sample Code:

Please add some!


Please edit this page!

Do you have...

  • helpful tips or sample code to share for using this API in managed code?
  • corrections to the existing content?
  • variations of the signature you want to share?
  • additional languages you want to include?

Select "Edit This Page" on the right hand toolbar and edit it! Or add new pages containing supporting types needed for this API (structures, delegates, and more).

Access directly from VS:
Terms of Use
Edit This Page
Find References
Show Printable Version