يعطيني فتح مقبض على محرك أقراص فلاش رمز خطأ "وصول"

StackOverflow https://stackoverflow.com/questions/3672086

سؤال

أود أن أعرف لماذا عندما أحاول إنشاء مقبض على محرك أقراص فلاش USB ، أتلقى مسارًا لم يتم العثور عليه.

HANDLE aFile = CreateFile(_T("\\\\.\\F:\\"), GENERIC_READ, 0, NULL,
        OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);

    if (aFile == INVALID_HANDLE_VALUE)
    {
        printf("\n");
        printf("Bad handle value. Error %d \n", GetLastError());
    }

من هناك أريد قراءة دفق من 512 بايت (قطاع التمهيد) إلى ملف .bin ، لكن لا يبدو لي أن أتجاوز إنشاء المقبض أولاً. هل يمنع Windows التطبيقات من فتح مقبض إلى محركات أقراص قابلة للإزالة؟

هل كانت مفيدة؟

المحلول

هذا الرمز لديه مشكلتان. أولا ، المسار. أنت في الواقع تحدد المجلد الجذر لمحرك الأقراص ؛ ما تحتاجه حقًا هو المجلد. قم بإزالة الذروة الخلفية الخلفية من المسار ؛ ie _t (". f:"). ثانياً ، تحتاج إلى تحديد file_share_read | file_share_write ؛ أنت تحاول فتحه في وضع حصري ، وسوف يفشل هذا. راجع وثائق MSDN لـ CreateFile لمزيد من المعلومات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top