Dela via


Ange enhetsegenskaper

Varje enhetsobjekt kan ha en eller flera enhetsegenskaper. Enhetsegenskaper lagras som flaggor i Egenskapsmedlem i enhetsobjektets DEVICE_OBJECT-struktur.

De flesta drivrutiner anger endast den FILE_DEVICE_SECURE_OPEN egenskapen. Detta säkerställer att samma säkerhetsinställningar tillämpas på alla öppna begäranden i enhetens namnområde. Mer information finns i Controlling Device Namespace Access.

FILE_AUTOGENERATED_DEVICE_NAME används endast för PDOs. Egenskaperna FILE_FLOPPY_DISKETTE, FILE_REMOVABLE_MEDIA och FILE_WRITE_ONCE_MEDIA är specifika för lagringsenheter. En beskrivning av de möjliga enhetsegenskaperna finns i beskrivningen av Egenskaper medlem i DEVICE_OBJECT.

Vissa enhetsegenskaper, till exempel FILE_AUTOGENERATED_DEVICE_NAME, gäller endast för enskilda enhetsobjekt. Drivrutiner kan ange en inställning för enhetsegenskaper för enskilda enhetsobjekt när de skapar enhetsobjektet genom att anropa IoCreateDevice eller IoCreateDeviceSecure.

Följande egenskaper gäller för hela enhetsstacken:

FILE_DEVICE_SECURE_OPEN

FILE_FLOPPY_DISKETTE

ENDAST_LÄSBAR_ENHET

FILE_REMOVABLE_MEDIA

FIL_SKIVAS_EN_GÅNG_MEDIA

Drivrutiner kan ange enhetsegenskaper som gäller för hela enhetsstacken genom att anropa IoCreateDevice eller IoCreateDeviceSecure. Alternativt kan enhetsegenskaper som gäller för hela enhetsstacken anges i registret, antingen för enheten eller för enhetens installationsklass. (Mer information finns i Ange egenskaper för enhetsobjekt i registret.)

PnP-hanteraren avgör registerinställningen för enhetsegenskaper på följande sätt.

  • Om ett värde anges för den enskilda enheten använder PnP-hanteraren det värdet.

  • Om ett värde har angetts för enhetsinstallationsklassen använder PnP-hanteraren det värdet.

  • I annat fall använder PnP-hanteraren värdet noll som registerinställning.

Om en enhetsegenskap som gäller för hela enhetsstacken anges i registret, eller om den har angetts för någon FDO eller filtrera DO i stacken, anger PnP-hanteraren den för varje enhetsobjekt i stacken. (Om enheten är kapabel för raw-läge och därmed inte har en FDO, så använder PnP-hanteraren PDO:n i stället.)