Freigeben über


Angeben des exklusiven Zugriffs auf Geräteobjekte

Wenn der exklusive Zugriff auf ein Gerät aktiviert ist, kann jeweils nur ein Handle für das Gerät geöffnet sein. Damit der E/A-Manager exklusiven Zugriff auf das Gerät erzwingen kann, muss die exklusive Eigenschaft für das benannte Geräteobjekt im Gerätestapel festgelegt werden.

Bei einem WDM-Gerätestapel, der sowohl über eine PDO als auch über eine FDO verfügt, kann die exklusive Eigenschaft nur durch die INF-Datei mithilfe einer INF AddReg-Direktive festgelegt werden. Das PDO ist das benannte Objekt im Stapel, aber der Bustreiber (nicht der Funktionstreiber selbst) erstellt die PDO im Namen des Funktionstreibers. Die einzige Möglichkeit, den Bustreiber anweisen, das exklusive Flag für die PDO festzulegen, ist die Inf-Datei der Klasse oder des Geräts. (Der Aufruf der IoCreateDevice-Routine erstellt die FDO. Das Festlegen des exklusiven Flags für die FDO hat keine Auswirkungen.)

Treiber, deren Geräteobjekte nicht gestapelt sind, z. B. Nicht-WDM-Treiber und Geräte, die im Rohmodus arbeiten, können die IoCreateDeviceSecure-Routine verwenden, um die exklusive Eigenschaft für ihr benanntes Geräteobjekt festzulegen.

Der E/A-Manager erzwingt die Exklusivität pro Name für benannte Geräteobjekte, unabhängig vom nachgestellten Namen. Angenommen, das Geräteobjekt hat den Namen "\Device\DeviceName". Anschließend erzwingt der E/A-Manager die Exklusivität für eine Anforderung zum Öffnen von "\Device\DeviceName\Filename1" gefolgt von "\Device\DeviceName\Filename2". Wenn zwei Objekte im Gerätestapel benannt sind (was nicht empfohlen wird), ermöglicht der E/A-Manager das Öffnen eines einzelnen Handles für jedes Objekt. In einer solchen Situation müssen Die Fahrer die Exklusivität in ihren DRIVER_DISPATCH Rückruffunktionen selbst erzwingen. Der E/A-Manager erzwingt auch keine Exklusivität für Geöffnete relativ zu einem anderen Dateihandle. Weitere Informationen zu Dateiöffnungsanforderungen im Namespace des Geräts finden Sie unter Steuern des Gerätenamespacezugriffs.