أنت غير متصل حاليًا، وفي انتظار الإنترنت الخاص بك ليقوم بإعادة الاتصال

INFO: فهم الأجهزة وأسماء الارتباطات الرمزية

هام: تمت ترجمة هذا المقال باستخدام برنامج ترجمة آلية لشركة مايكروسوفت بدلاً من الاستعانة بمترجم بشري. تقدم شركة مايكروسوفت كلاً من المقالات المترجمة بواسطة المترجمين البشر والمقالات المترجمة آليًا وبالتالي ستتمكن من الوصول إلى كل المقالات الموجودة في قاعدة المعرفة الخاصة بنا وباللغة الخاصة بك. بالرغم من ذلك، فإن المقالة المترجمة آليًا لا تكون دقيقة دائمًا وقد تحتوي على أخطاء إملائية أو لغوية أو نحوية، مثل تلك الأخطاء الصادرة عن متحدث أجنبي عندما يتحدث بلغتك. لا تتحمل شركة مايكروسوفت مسئولية عدم الدقة أو الأخطاء أو الضرر الناتج عن أية أخطاء في ترجمة المحتوى أو استخدامه من قبل عملائنا. تعمل شركة مايكروسوفت باستمرار على ترقية برنامج الترجمة الآلية

235128
الموجز
يكون للأجهزة مثل الأقراص الثابتة المنافذ التسلسلية والمنافذ المتوازية تحتوي على اسم جهاز Windows NT داخلي و قد بشكل اختياري على اسم جهاز MS-DOS. تقع هذه الأسماء في مساحة الاسم إدارة الكائنات Windows NT. أثناء استخدام Windows NT نفسه برامج تشغيل وضع kernel أسماء الأجهزة NT, يجب أن تستخدم البرامج Win32 أسماء الأجهزة MS-DOS. اسم جهاز MS-DOS ارتباط رمزي إلى اسم جهاز NT الأساسي. توضح هذه المقالة أسماء الأجهزة الارتباطات الرمزية و كيف يمكن البرامج Win32 إنشاء الارتباطات الرمزية وإزالتها.
معلومات أخرى

أسماء الأجهزة NT داخلي

عند تحميل برنامج جهاز kernel-وضع تسجيلات به إجراء تهيئة اسم جهاز مع إدارة الكائنات Windows NT. يشار إلى هذا الاسم اسم جهاز Windows NT. مرجع مكونات وضع kernel من Windows NT وبرامج تشغيل وضع kernel الأجهزة بواسطة أسماء أجهزة Windows NT الخاصة بهم. يكون تنسيق مثل \Device\CDRom0 \Device\Serial0 هذه الأسماء ثم أيضاً موجودة في دليل \device من مساحة اسم إدارة الكائنات.

لا يمكن استخدام البرامج Win32 على أسماء أجهزة Windows NT داخلي إلى الأجهزة الوصول لأن النظام الفرعي Win32 و Win32 API تتطلب أحرف محركات الأقراص المعروفة و أسماء الأجهزة MS-DOS مثل COM1 A: C: ،: ، و LPT1:. على الرغم من أن البرامج Win32 لا يجوز استخدام أسماء أجهزة Windows NT ، يمكنهم ومع ذلك، تعريف وقم بإزالة أسماء الأجهزة MS-DOS الوصول إلى الأجهزة. يمكن أن تسترد اسم الجهاز Windows NT داخلي المقترنة على اسم جهاز MS-DOS. توضح التعليمة البرمجية المثال في مقطع "الارتباطات الرمزية" من هذه المقالة كيفية القيام بذلك.

الحصول على أفضل فهم من كيفية إدارة الكائنات بتعقب أسماء إلى كائنات النظام والأجهزة ، يمكنك عرض مساحة الاسم إدارة الكائنات باستخدام أداة WinObj.exe في Platform SDK.

أسماء الأجهزة MS-DOS

تستخدم البرامج Win32 مثل المنافذ المتوازية خلال أسماء جهاز MS-DOS المنافذ التسلسلية ومحركات الأجهزة. محركات الأقراص هذه أحرف محركات الأقراص مثل A: C:. هذه أسماء مثل COM1 لمنافذ والمنافذ التسلسلية: ، COM2: ، و LPT1:. مثل أسماء أجهزة Windows NT ، هذه الأسماء الموجودة في مساحة اسم "إدارة الكائنات" ، ولكن في \ ؟؟ الدليل الذي يكون مرئياً البرامج Win32 وضع المستخدم.

ما يجعل أسماء الأجهزة MS-DOS مختلفة عن أسماء أجهزة Windows NT أن عدم استخدامها بواسطة برامج تشغيل Windows NT kernel أو الوضع kernel. الغرض الخاص بها للإشارة إلى أسماء أجهزة Windows NT بحيث يمكن استخدام برامج Win32 أحرف محركات الأقراص مألوفة وأسماء الجهاز; على سبيل المثال، COM1: على الوصول إلى أجهزة Windows NT. لذلك، أسماء الأجهزة MS-DOS تسمى "الارتباطات الرمزية" إلى أسماء أجهزة Windows NT. وهو موجود اسم جهاز MS-DOS في كائن إدارة الخاص \ ؟؟ يشير إلى اسم جهاز Windows NT في الدليل \device إدارة الكائنات والدليل.

يمكن الإشارة كل اسم جهاز MS-DOS إلى الأكثر داخلي Windows NT جهاز واحد. ومع ذلك، يمكن أشر أسماء الأجهزة MS-DOS متعددة إلى جهاز واحد. على سبيل المثال، بينما يمكن الإشارة C: فقط إلى قسم واحد, فمن الممكن أن يكون لديك أحرف اثنين أو أكثر من محركات الأقراص، مثل D: و E: Z: ، أشر إلى نفس القسم.

الارتباطات الرمزية

تستمر الارتباطات الرمزية التي تم إنشاؤها من قبل النظام خلال إعادة تشغيل الكمبيوتر لأنه تم تخزينها في التسجيل. أيضاً قد البرامج إنشاء الارتباطات الرمزية مع API DefineDosDevice(). تصلح هذه الارتباطات فقط حتى يتم إعادة تشغيل الكمبيوتر أو إيقاف تشغيل حتى يتم تحديث مفاتيح التسجيل التي تحتوي على معلومات حول الارتباطات.

يمكن أن يكون هناك عدة الارتباطات الرمزية إلى اسم جهاز Windows NT. ومع ذلك، إعادة تمهيد اسم جهاز MS-DOS الذي بقاء النظام أولاً تعيين إلى الجهاز Windows NT الداخلية عبر فقط. لذلك، يمكن إنشاء الارتباطات الرمزية إضافية تعيين أحرف محركات الأقراص متعددة محرك أقراص مضغوطة واحد ولكن تبقى أحرف محركات الأقراص الإضافية فقط حتى يتم إيقاف تشغيل الجهاز أو إعادة تشغيل.

يمكن استرداد البرامج Win32 اسم الجهاز Windows NT الذي يقترن اسم جهاز MS-DOS معينة بواسطة QueryDosDevice() الاستدعاء مع اسم جهاز MS-DOS. التالي هو رمز مثال يوضح كيفية القيام بذلك:
char szNtDeviceName[MAX_PATH];if (QueryDosDevice ("C:", szNtDeviceName, MAX_PATH)){   printf ("C: is linked to %s\n", szNtDeviceName);}				
البرامج Win32 إنشاء وحذف الارتباطات الرمزية عن طريق استدعاء DefineDosDevice(). لإنشاء ارتباط رمزي استدعاء DefineDosDevice علامة DDD_RAW_TARGET_PATH. لإزالة ارتباط رمزي الاتصال مع الإشارات DDD_REMOVE_DEFINITION و DDD_RAW_TARGET_PATH. يوضح نموذج البرنامج التالي كل من هذه العمليات:
/*   DDD      This sample shows how to associate an MS-DOS device name with a       Windows NT device name. The association is a symbolic link between      device names stored in the Object Manager's namespace. Applications      use the MS-DOS device name, but Windows NT and kernel-mode drivers      use the Windows NT device name.     Usage:      ddd <MS-DOS Device Name> <NT Device Name>      ddd -r <MS-DOS Device Name>   NOTE: If the MS-DOS device name is a driver letter, the trailing    backlash is not accepted by DefineDosDevice or QueryDosDevice.   NOTE: The MS-DOS device name is defined only until the computer is    restarted.   To make the drive letter associations permanent on Window NT 4.0, you   have to update HKEY_LOCAL_MACHINE\SYSTEM\DISK\Information. However,    the contents of the value are undocumented.    On Windows 2000, you have to use the Volume Mount Point APIs.*/ #define WIN32_LEAN_AND_MEAN /* Reduce number of system headers parsed */                             /* during build. */ #include <windows.h>#include <stdio.h>void main (int argc, char **argv){   char * pszDosDeviceName,        * pszNtDeviceName;   bool  fRemoveDeviceName = false;   bool  fResult;   /*      Command-line parsing.        1) Make sure correct number of arguments are supplied.        2) See if you should add or remove the MS-DOS Device Name.   */    if (argc != 3)   {      printf("\nusage: %s <DOS device name> <NT device name>    to add\n",             argv[0]);      printf("usage: %s [-r] <DOS device name>                to remove\n",             argv[0]);      printf("\n\texample: %s d: \\device\\cdrom0\n", argv[0]);      return;   }   fRemoveDeviceName = !lstrcmpi (argv[1], "-r");   /* Now, add/remove the DOS device name. */    if (fRemoveDeviceName)   {      /*         Remove the MS-DOS device name. First, get the name of the Windows         NT device from the symbolic link, then delete the symbolic link.               */       pszDosDeviceName = argv[2];      pszNtDeviceName = (char *)LocalAlloc (LPTR, MAX_PATH);      fResult = QueryDosDevice (pszDosDeviceName, pszNtDeviceName,                                MAX_PATH);      if (fResult)      {         fResult = DefineDosDevice (DDD_RAW_TARGET_PATH|                                    DDD_REMOVE_DEFINITION|                                    DDD_EXACT_MATCH_ON_REMOVE,                                    pszDosDeviceName, pszNtDeviceName);      }      if (!fResult)         printf("error %lu: could not remove %s\n",                GetLastError(), pszDosDeviceName);      LocalFree (pszNtDeviceName);   }   else   {      /* Add the DOS device name */       pszDosDeviceName = argv[1];      pszNtDeviceName  = argv[2];      fResult = DefineDosDevice (DDD_RAW_TARGET_PATH, pszDosDeviceName,                                 pszNtDeviceName);      if (!fResult)         printf("error %lu: could not link %s to %s\n",                GetLastError(), pszDosDeviceName, pszNtDeviceName);   }}				
الجهاز dos

تحذير: تمت ترجمة هذا المقال تلقائياً

خصائص

رقم الموضوع: 235128 - آخر مراجعة: 11/21/2006 15:36:42 - المراجعة: 4.1

  • Microsoft Win32 واجهة برمجة تطبيقات
  • kbmt kbinfo kbkernbase KB235128 KbMtar
تعليقات