Uso de Dirids

Muchos de los directorios que aparecen en los 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 del SDK de Microsoft Windows).

Tenga en cuenta que un dirid con un valor de 65535 se considera sinónimo de un dirid con un valor de -1, aunque se prefiere este ú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 del dirid para el directorio que desea especificar, seguido de otro carácter (%). Un carácter de barra diagonal inversa terminado () 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 por completo, la ruta de acceso que se muestra en el ejemplo anterior se convierte en c:\windows\system32\drivers\aic78xx.sys (suponiendo que Windows se instaló en el directorio c:\windows). Tenga en cuenta que la sustitución de cadenas, o la forma %dirid%, se puede usar en cualquier lugar en el que se espera una cadena, con la excepción de la sección Cadenas INF del archivo INF.

    Los dos ejemplos siguientes muestran 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 autor del INF aparentemente pretendía 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 más comúnmente especificados por los archivos INF del dispositivo y los archivos INF del controlador se muestran hacia la parte superior de la tabla.

Como parte de los requisitos de Aislamiento de paquetes de controladores, un controlador debe Run from Driver Store y usar DIRID 13 para especificar la ubicación de los archivos del paquete de controladores durante la instalación. A partir de Windows 11, la versión 24H2 algunas de las dirid usadas habitualmente han quedado en desuso al enviar su INF para una firma WHQL. Para obtener más información, vea InfVerif /h.

Value Directorio de destino Versión en desuso

01

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

Windows 11 24H2

10

Windows directorio.

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 %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 utilice DelFiles en un archivo para el que DestinationDirs incluye dirid 13.

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

No use CopyFiles para cambiar el nombre de un archivo cuyo DestinationDirs contiene dirid 13.

Para obtener más información sobre el uso de dirid 13, consulte Ejecutar desde Driver Store.

17

Directorio del archivo INF

Windows 11 24H2

18

Directorio de ayuda

Windows 11 24H2

20

Directorio de fuentes

Windows 11 24H2

21

Directorio Visores

Windows 11 24H2

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 están instalados los archivos Windows. Por ejemplo, si dirid 10 es "C:\winnt", dirid 24 es "C:\".

Windows 11 24H2

25

Directorio compartido

Windows 11 24H2

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).

Windows 11 24H2

50

Directorio del sistema

Esto equivale a %SystemRoot%\system.

Windows 11 24H2

51

Directorio de colas (no se usa para instalar controladores de impresora ; vea Printer Dirids)

52

Directorio de controladores de spool (no se usa para instalar controladores de impresora)

53

Directorio del perfil de usuario

Windows 11 24H2

54

Directorio donde se encuentran Ntldr.exe y Osloader.exe

Windows 11 24H2

55

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

-1

Ruta de acceso absoluta

Windows 11 24H2

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

Value Carpeta especial de Shell Versión obsoleta

16406

Todos los usuarios\Menú de inicio

Windows 11 24H2

16407

Todos los usuarios\Menú de inicio\Programas

Windows 11 24H2

16408

Todos los usuarios\Menú Inicio\Programas\Inicio

Windows 11 24H2

16409

Todos los usuarios\Escritorio

Windows 11 24H2

16415

Todos los usuarios\Favoritos

Windows 11 24H2

16419

Todos los usuarios\Datos de la aplicación

Windows 11 24H2

16422

Program Files

16425

%SystemRoot%\SysWOW64

16426

%ProgramFiles(x86)%

16427

Archivos de programa\Común

16428

%ProgramFiles(x86)%\Common

16429

Todos los usuarios\Templates

Windows 11 24H2

16430

Usuarios compartidos\Documentos

Windows 11 24H2

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 CSIDL_Xxx, consulte la documentación del SDK de Windows.