Share via


Uso de Dirids

Muchos de los directorios que aparecen en archivos INF se pueden expresar mediante identificadores de directorio (dirids), que son números que identifican directorios específicos. Las aplicaciones pueden usar, pero no pueden reasignar los directorios definidos por el sistema asociados a dirids cuyos valores van de -1 a 32767.

Para crear dirids con valores definidos por el usuario de 32768 a 65534 o 65536 y versiones posteriores, use la función SetupSetDirectoryId (descrita en la documentación de Microsoft Windows SDK).

Tenga en cuenta que un dirid con un valor de 65535 se considera sinónimo de un árido con un valor de -1, aunque se prefiere el último (dirid -1).

Si piensa usar dirids en el archivo INF, tenga en cuenta las dos instrucciones siguientes:

  1. Cuando la sintaxis de una entrada de archivo INF especifica explícitamente un valor dirid (la sección INF DestinationDirs, por ejemplo), exprese ese valor como un número.

    En el ejemplo siguiente se muestra esta sintaxis:

    [DestinationDirs]
    DefaultDestDir = 11  ;  \system32 directory on Windows 2000 and later versions
    
  2. Cuando la sintaxis de una entrada de archivo INF especifica una ruta de acceso de archivo, puede usar una sustitución de cadenas proporcionada por el sistema para representar parte o toda esta ruta de acceso. Esta sustitución tiene la siguiente forma:

    %dirid%

    Este formulario consta de un carácter de porcentaje (%) seguido de la dirid para el directorio que desea especificar, seguido de otro carácter de porcentaje (%) . Un carácter de barra diagonal inversa de terminación () separa esta expresión de un siguiente nombre de archivo o directorios adicionales en la ruta de acceso.

    En el ejemplo siguiente se muestra esta sintaxis:

    [aic78xx_Service_Inst]
    ServiceBinary = %12%\aic78xx.sys
    

    Cuando se expande completamente, la ruta de acceso que se muestra en el ejemplo anterior se convierte encontroladores\c:\windows\system32\aic78xx.sys (suponiendo que Windows se instaló en el directorio c:\windows). Tenga en cuenta que la sustitución de cadenas o el formulario %dirid% se pueden usar en cualquier lugar en el que se espera una cadena, a excepción de la sección Cadenas INF del archivo INF.

    En los dos ejemplos siguientes se muestra cómo no se debe usar la sustitución de cadenas.

    [DestinationDirs]
    DefaultDestDir = %11%  ; Error! - number expected
    
    [aic78xx_Service_Inst]
    ServiceBinary = 12\aic78xx.sys  ; Error! - unknown directory name
    

    En el primer ejemplo, la sintaxis de la entrada DefaultDestDir requiere que su valor sea un número. Sin embargo, la expresión %11% se expande a una cadena. En el segundo ejemplo, el escritor INF aparentemente pretende establecer el valor de la entrada ServiceBinary en un archivo del directorio que contiene controladores (consulte la tabla siguiente para obtener más información). El error se produce porque Windows busca el archivo especificado en un directorio denominado "12", que probablemente no existe en el equipo.

En la tabla siguiente se muestran varios dirids usados habitualmente y los directorios que representan. Los valores especificados normalmente por los archivos INF del dispositivo y los archivos INF del controlador se muestran hacia la parte superior de la tabla.

Value Directorio de destino

01

SourceDrive:\pathname (el directorio desde el que se instaló el archivo INF)

10

Directorio de Windows.

Esto equivale a %SystemRoot%.

11

Directorio del sistema.

Esto equivale a %SystemRoot%\system32 para Windows 2000 y versiones posteriores de Windows.

12

Directorio de controladores.

Esto equivale a loscontroladores%SystemRoot%\system32\ para Windows 2000 y versiones posteriores de Windows.

13

Directorio del almacén de controladores del paquete de controladores.

Para Windows 8.1 y versiones posteriores de Windows, especifica la ruta de acceso al directorio del Almacén de controladores donde se importó el paquete de controladores.

No use DelFiles en un archivo para el que DestinationDirs incluye dirid 13.

El subdirectorio opcional de la sección SourceDiskFiles de un archivo debe coincidir con el subdirectorio de la sección DestinationDirs de la entrada que se aplica a este archivo.

No use CopyFiles para cambiar el nombre de un archivo para el que DestinationDirs incluye dirid 13.

Para obtener más información sobre el uso de dirid 13, consulte Ejecutar desde el almacén de controladores.

17

Directorio de archivos INF

18

Directorio de ayuda

20

Directorio de fuentes

21

Directorio Visores

23

Directorio de colores (ICM) (no se usa para instalar controladores de impresora)

24

Directorio raíz del disco del sistema.

Este es el directorio raíz del disco en el que se instalan los archivos de Windows. Por ejemplo, si dirid 10 es "C:\winnt", dirid 24 es "C:\".

25

Directorio compartido

30

Directorio raíz del disco de arranque, también conocido como "partición del sistema ARC". (Esto podría ser o no el mismo directorio que el representado por dirid 24).

50

Directorio del sistema

Esto equivale a %SystemRoot%\system.

51

Directorio de colas (no se usa para instalar controladores de impresora ; consulte Impresora Dirids)

52

Directorio de controladores de cola de Spool (no se usa para instalar controladores de impresora)

53

Directorio de perfiles de usuario

54

Directorio donde se encuentran Ntldr.exe y Osloader.exe

55

Directorio de procesadores de impresión (no se usa para instalar controladores de impresora)

-1

Ruta de acceso absoluta

Los valores dirid de 16384 a 32767 están reservados para carpetas de shell especiales. En la tabla siguiente se muestran valores dirid para estas carpetas.

Value Carpeta especial de Shell

16406

Todos los usuarios\menú Inicio

16407

Todos los usuarios\Menú Inicio\Programas

16408

Todos los usuarios\Menú Inicio\Programas\Inicio

16409

Todos los usuarios\Escritorio

16415

Todos los usuarios\Favoritos

16419

Todos los usuarios\Datos de la aplicación

16422

Archivos de programa

16425

%SystemRoot%\SysWOW64

16426

%ProgramFiles(x86)%

16427

Archivos de programa\Common

16428

%ProgramFiles(x86)%\Common

16429

Todos los usuarios\plantillas

16430

Todos los usuarios\documentos

Además de los valores de esta tabla que se definen en Setupapi.h, puede usar cualquiera de los valores CSIDL_Xxx definidos en Shlobj.h. Para definir un valor dirid para una carpeta que no aparece en esta tabla, agregue 16384 (0x4000) al valor CSIDL_Xxx . Para obtener más información sobre los valores de CSIDL_Xxx , consulte la documentación de Windows SDK.