@msdn=http://search.microsoft.com/search/results.aspx?qu=$$$ @pinvoke=http://pinvoke.net/$$$.htm Summary: Used with DeviceIoControl and [IOCTL_USB_GET_NODE_CONNECTION_DRIVERKEY_NAME] to get the "Driver Key Name" of a device on a USB Hub !!!!C# Definition: [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)] struct USB_NODE_CONNECTION_DRIVERKEY_NAME { public int ConnectionIndex; public int ActualLength; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = BUFFER_SIZE)] public string DriverKeyName; } !!!!VB Definition: Structure USB_NODE_CONNECTION_DRIVERKEY_NAME Public TODO End Structure !!!!User-Defined Field Types: None. !!!!Notes: Identical to the USB_NODE_CONNECTION_NAME structure typedef struct _USB_NODE_CONNECTION_DRIVERKEY_NAME { ULONG ConnectionIndex; ULONG ActualLength; WCHAR DriverKeyName[1]; } USB_NODE_CONNECTION_DRIVERKEY_NAME, *PUSB_NODE_CONNECTION_DRIVERKEY_NAME; Documentation: USB_NODE_CONNECTION_DRIVERKEY_NAME@msdn on MSDN !!!!Example: // Open a handle to the Hub device IntPtr h = CreateFile(PortHubDevicePath, GENERIC_WRITE, FILE_SHARE_WRITE, IntPtr.Zero, OPEN_EXISTING, 0, IntPtr.Zero); if (h.ToInt32() != INVALID_HANDLE_VALUE) { int nBytesReturned; // Get the Driver Key Name USB_NODE_CONNECTION_DRIVERKEY_NAME DriverKey = new USB_NODE_CONNECTION_DRIVERKEY_NAME(); DriverKey.ConnectionIndex = PortPortNumber; int nBytes = Marshal.SizeOf(DriverKey); IntPtr ptrDriverKey = Marshal.AllocHGlobal(nBytes); Marshal.StructureToPtr(DriverKey, ptrDriverKey, true); // Use an IOCTL call to request the Driver Key Name if (DeviceIoControl(h, IOCTL_USB_GET_NODE_CONNECTION_DRIVERKEY_NAME, ptrDriverKey, nBytes, ptrDriverKey, nBytes, out nBytesReturned, IntPtr.Zero)) { DriverKey = (USB_NODE_CONNECTION_DRIVERKEY_NAME)Marshal.PtrToStructure(ptrDriverKey, typeof(USB_NODE_CONNECTION_DRIVERKEY_NAME)); string DeviceDriverKey = DriverKey.DriverKeyName; } Marshal.FreeHGlobal(ptrDriverKey); CloseHandle(h); }
Edit Structures.USB_NO...
You do not have permission to change this page. If you feel this is in error, please send feedback with the contact link on the main page.