2011-07-30 52 views
5

Tôi đang sửa đổi bảng phân vùng của Thiết bị Usb cho mục đích mã hóa.Cách lập trình kết nối và kết nối lại thiết bị USB

Mã hoạt động tốt nhưng tôi cần phải rút phích cắm và cắm thiết bị USB để xem các thay đổi làm cách nào tôi có thể thực hiện điều này theo lập trình?

Tôi biết là có thể vì một số ứng dụng khác làm điều đó. Hiện tại tôi sử dụng DeviceIoCtrl để xóa thiết bị USB và yêu cầu người dùng thực hiện thao tác theo cách thủ công nhưng không chuyên nghiệp.

Tôi đã cố gắng sử dụng IOCTL_INTERNAL_USB_CYCLE_PORT nhưng không được hỗ trợ, tôi đoán nó có thể được gọi chỉ từ chế độ hạt nhân.

+2

Trong Linux có một ioctl để tải lại bảng phân vùng sau khi thay đổi. Windows có một cái gì đó để có hiệu lực, hoặc bạn phải mô phỏng một thiết bị lại kết nối? –

+0

Trong các cửa sổ sẽ là IOCTL_DISK_UPDATE_PROPERTIES. – Brian

Trả lời

2

Ghi chú cho IOCTL_DISK_UPDATE_PROPERTIES đề nghị sử dụng IOCTL chính xác khi bạn đã sửa đổi trực tiếp bảng phân vùng và muốn tải lại nó.

Thao tác này được sử dụng để đồng bộ hóa chế độ xem hệ thống của thiết bị đĩa được chỉ định khi bảng phân vùng của đĩa được sửa đổi trực tiếp. Hãy chắc chắn thực hiện thao tác này khi bạn cập nhật không gian có thể sử dụng cho đĩa để hệ thống sẽ cập nhật bảng phân vùng của nó.

+0

Cảm ơn rất nhiều nó hoạt động! – opc0de

Các vấn đề liên quan