Type a page name and press Enter. You'll jump to the page if it exists, or you can create it if it doesn't.
To create a page in a module other than setupapi, prefix the name with the module name and a period.
CM_Request_Device_Eject (setupapi)
.
C# Signature:
[DllImport("setupapi.dll", CharSet = CharSet.Auto)]
static extern int CM_Request_Device_Eject(UInt32 devinst, out PNP_VETO_TYPE pVetoType, System.Text.StringBuilder pszVetoName, int ulNameLength, int ulFlags);
static extern int CM_Request_Device_Eject(IntPtr devinst, out PNP_VETO_TYPE pVetoType, System.Text.StringBuilder pszVetoName, int ulNameLength, int ulFlags);
VB Signature:
Declare Function CM_Request_Device_Eject Lib "setupapi.dll" (TODO) As TODO
public string Eject(bool allowUI)
{
if (!allowUI)
{
CM_Request_Device_Eject_NoUi((int)USBData.DevInst, IntPtr.Zero, null, 0, 0); // USBData, a SP_DEVINFO_DATA structure.
}
else
{
StringBuilder sb = new StringBuilder(1024);
PNP_VETO_TYPE veto; // PNP_VETO_TYPE enumeration is used to identify the reason for rejection
int hr = CM_Request_Device_Eject((int)USBData.DevInst, out veto, sb, sb.Capacity, 0);
if (hr != 0)
throw new Win32Exception(hr);
if (veto != PNP_VETO_TYPE.Ok)
return veto.ToString();
}
return null;
}
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).