Sdílet prostřednictvím


Definování názvu MS-DOS zařízení

Název zařízení MS-DOS je propojení, které ukazuje na cestu k zařízení MS-DOS. Tato spojení tvoří jmenný prostor zařízení MS-DOS. Voláním funkcí DefineDosDevice a SetVolumeMountPoint vytvořte a upravte tyto spojení. DeleteVolumeMountPoint odstraní spojení vytvořené pomocí SetVolumeMountPoint, a DefineDosDevice odstraní spojení, která vytvořil.

Po definování názvu MS-DOS zařízení zůstane viditelný pro všechny procesy.

  • Všechna MS-DOS zařízení jsou systémem Windows identifikována prostřednictvím OVĚŘOVACÍho ID. ID ověřování je LUID (místně jedinečný identifikátor) přidružený k jednotlivým přihlašovacím relacím v okamžiku jejich vytvoření.
  • Viditelnost názvu MS-DOS zařízení je kategorizována jako globální nebo místní a je definována tak, že je zahrnuta do oboru názvů globálních MS-DOS zařízení a místních MS-DOS zařízení. K obsahu MS-DOS zařízení v globálním oboru názvů mají přístup všichni uživatelé a k obsahu MS-DOS zařízení v místním oboru názvů má přístup jenom uživatel, jehož přístupový token obsahuje OVĚŘOVACÍ ID přidružené k názvu místního MS-DOS oboru názvů zařízení.

Na jednom počítači může existovat více místních MS-DOS oborů názvů zařízení a pouze jeden MS-DOS globální obor názvů zařízení.

Všimněte si, že pouze procesy spuštěné v kontextu LocalSystem mohou volat DefineDosDevice vytvořit MS-DOS zařízení v oboru názvů globálního MS-DOS zařízení. Také se odstraní místní obor názvů zařízení MS-DOS odpovídající určitému ID ověřování, když se odebere poslední odkaz na toto ID ověřování.

Když kód dotazuje existující název zařízení MS-DOS voláním QueryDosDevice, nejprve prohledá místní MS-DOS obor názvů zařízení. Pokud se tam nenajde, funkce vyhledá obor názvů globálního MS-DOS zařízení. Když váš kód dotazuje všechny existující názvy zařízení MS-DOS prostřednictvím této funkce, seznam získaných názvů závisí na tom, zda je spuštěn v kontextu LocalSystem. Pokud ano, vrátí se pouze názvy zařízení MS-DOS zahrnuté v globálním oboru názvů zařízení MS-DOS. Pokud ne, vrátí se zřetězení názvů zařízení v globálních a místních oborech názvů zařízení MS-DOS. Pokud název zařízení existuje v obou oborech názvů, QueryDosDevice vrátí položku v oboru názvů místní MS-DOS zařízení. To platí také pro seznam všech názvů zařízení MS-DOS vrácených funkcemi GetLogicalDrives a GetLogicalDriveStrings.

Všimněte si, že může dojít k následujícímu scénáři:

  1. Uživatel A, který není spuštěný v kontextu LocalSystem, vytvoří název zařízení v odpovídajícím oboru názvů místního MS-DOS zařízení a tento název zařízení neexistuje v oboru názvů globálního MS-DOS zařízení.
  2. Uživatel B, který pracuje v kontextu LocalSystem, vytvoří stejný název zařízení v globálním oboru názvů zařízení MS-DOS.

V tomto scénáři uživatel A nebude mít přístup k názvu zařízení v oboru názvů globálního MS-DOS zařízení, dokud ho neodebere nebo nepřejmenuje v oboru názvů místního MS-DOS zařízení. Aby se snížila pravděpodobnost výskytu tohoto scénáře, mělo by být MS-DOS písmenné označení jednotky přiděleno v globálním oboru názvů zařízení MS-DOS, od C: do Z:. Sekvenci je třeba převrátit pro přiřazení písmen diskových jednotek MS-DOS v oboru názvů zařízení MS-DOS na lokální úrovni.

Pokud nepracujete v rámci kontextu LocalSystem, DefineDosDevice vám neumožní definovat název zařízení v oboru názvů lokálního MS-DOS zařízení, pokud již tento název zařízení existuje v oboru názvů lokálního nebo globálního MS-DOS zařízení. Před voláním DefineDosDevice volejte QueryDosDevice, abyste zjistili, jestli název zařízení, který chcete definovat, existuje v oborech názvů zařízení MS-DOS.

Pojmenování souborů, cest a prostor názvů