How do I mapping usb storage device path to physicaldrive?












-1















I get the usb device path from



SetupDiGetDeviceInterfaceDetail()


and I can get the device path such like



\?usbstor#disk&ven_&prod_2307_pram&......


but I want to map device path to physical drvie



->  \physicaldrive0,1,2......


or inverse I can map physical drvie to device path

Is there any way to do that?










share|improve this question



























    -1















    I get the usb device path from



    SetupDiGetDeviceInterfaceDetail()


    and I can get the device path such like



    \?usbstor#disk&ven_&prod_2307_pram&......


    but I want to map device path to physical drvie



    ->  \physicaldrive0,1,2......


    or inverse I can map physical drvie to device path

    Is there any way to do that?










    share|improve this question

























      -1












      -1








      -1








      I get the usb device path from



      SetupDiGetDeviceInterfaceDetail()


      and I can get the device path such like



      \?usbstor#disk&ven_&prod_2307_pram&......


      but I want to map device path to physical drvie



      ->  \physicaldrive0,1,2......


      or inverse I can map physical drvie to device path

      Is there any way to do that?










      share|improve this question














      I get the usb device path from



      SetupDiGetDeviceInterfaceDetail()


      and I can get the device path such like



      \?usbstor#disk&ven_&prod_2307_pram&......


      but I want to map device path to physical drvie



      ->  \physicaldrive0,1,2......


      or inverse I can map physical drvie to device path

      Is there any way to do that?







      c++ windows usb driver






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Jan 3 at 7:41









      kledkled

      34




      34
























          1 Answer
          1






          active

          oldest

          votes


















          0














          oh, I found it.
          put the HANDLE into DeviceIoControl and use IOCTL_STORAGE_GET_DEVICE_NUMBER



          STORAGE_DEVICE_NUMBER number;   //use this to get disk numbers
          DWORD readed; // discard results
          BOOL result = DeviceIoControl(
          hdl, // handle to device
          IOCTL_STORAGE_GET_DEVICE_NUMBER, // dwIoControlCode
          NULL, // lpInBuffer
          0, // nInBufferSize
          &number, // output buffer
          sizeof(number), // size of output buffer
          &readed, // number of bytes returned
          NULL // OVERLAPPED structure
          );


          and the number.DeviceNumber is the PhysicalDrive number






          share|improve this answer























            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54018194%2fhow-do-i-mapping-usb-storage-device-path-to-physicaldrive%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0














            oh, I found it.
            put the HANDLE into DeviceIoControl and use IOCTL_STORAGE_GET_DEVICE_NUMBER



            STORAGE_DEVICE_NUMBER number;   //use this to get disk numbers
            DWORD readed; // discard results
            BOOL result = DeviceIoControl(
            hdl, // handle to device
            IOCTL_STORAGE_GET_DEVICE_NUMBER, // dwIoControlCode
            NULL, // lpInBuffer
            0, // nInBufferSize
            &number, // output buffer
            sizeof(number), // size of output buffer
            &readed, // number of bytes returned
            NULL // OVERLAPPED structure
            );


            and the number.DeviceNumber is the PhysicalDrive number






            share|improve this answer




























              0














              oh, I found it.
              put the HANDLE into DeviceIoControl and use IOCTL_STORAGE_GET_DEVICE_NUMBER



              STORAGE_DEVICE_NUMBER number;   //use this to get disk numbers
              DWORD readed; // discard results
              BOOL result = DeviceIoControl(
              hdl, // handle to device
              IOCTL_STORAGE_GET_DEVICE_NUMBER, // dwIoControlCode
              NULL, // lpInBuffer
              0, // nInBufferSize
              &number, // output buffer
              sizeof(number), // size of output buffer
              &readed, // number of bytes returned
              NULL // OVERLAPPED structure
              );


              and the number.DeviceNumber is the PhysicalDrive number






              share|improve this answer


























                0












                0








                0







                oh, I found it.
                put the HANDLE into DeviceIoControl and use IOCTL_STORAGE_GET_DEVICE_NUMBER



                STORAGE_DEVICE_NUMBER number;   //use this to get disk numbers
                DWORD readed; // discard results
                BOOL result = DeviceIoControl(
                hdl, // handle to device
                IOCTL_STORAGE_GET_DEVICE_NUMBER, // dwIoControlCode
                NULL, // lpInBuffer
                0, // nInBufferSize
                &number, // output buffer
                sizeof(number), // size of output buffer
                &readed, // number of bytes returned
                NULL // OVERLAPPED structure
                );


                and the number.DeviceNumber is the PhysicalDrive number






                share|improve this answer













                oh, I found it.
                put the HANDLE into DeviceIoControl and use IOCTL_STORAGE_GET_DEVICE_NUMBER



                STORAGE_DEVICE_NUMBER number;   //use this to get disk numbers
                DWORD readed; // discard results
                BOOL result = DeviceIoControl(
                hdl, // handle to device
                IOCTL_STORAGE_GET_DEVICE_NUMBER, // dwIoControlCode
                NULL, // lpInBuffer
                0, // nInBufferSize
                &number, // output buffer
                sizeof(number), // size of output buffer
                &readed, // number of bytes returned
                NULL // OVERLAPPED structure
                );


                and the number.DeviceNumber is the PhysicalDrive number







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Jan 3 at 8:00









                kledkled

                34




                34
































                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54018194%2fhow-do-i-mapping-usb-storage-device-path-to-physicaldrive%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Monofisismo

                    Angular Downloading a file using contenturl with Basic Authentication

                    Olmecas