Función SetupGetInfDriverStoreLocationW (setupapi.h)

La función SetupGetInfDriverStoreLocation recupera el nombre de archivo completo (ruta de acceso de directorio y nombre de archivo) de un archivo INF en el almacén de controladores que corresponde a un archivo INF especificado en el directorio de archivos INF del sistema o un archivo INF especificado en el almacén de controladores.

Sintaxis

WINSETUPAPI BOOL SetupGetInfDriverStoreLocationW(
  [in]            PCWSTR               FileName,
  [in, optional]  PSP_ALTPLATFORM_INFO AlternatePlatformInfo,
  [in, optional]  PCWSTR               LocaleName,
  [out]           PWSTR                ReturnBuffer,
  [in]            DWORD                ReturnBufferSize,
  [out, optional] PDWORD               RequiredSize
);

Parámetros

[in] FileName

Puntero a una cadena terminada en NULL que contiene el nombre y, opcionalmente, la ruta de acceso completa del directorio, de un archivo INF en el directorio de archivos INF del sistema. Como alternativa, este parámetro es un puntero a una cadena terminada en NULL que contiene el nombre de archivo completo (ruta de acceso de directorio y nombre de archivo) de un archivo INF en el almacén de controladores.

Para obtener más información sobre cómo especificar el archivo INF, vea la siguiente sección Comentarios .

[in, optional] AlternatePlatformInfo

Reservado para uso del sistema.

[in, optional] LocaleName

Reservado para uso del sistema.

[out] ReturnBuffer

Puntero a un búfer en el que la función devuelve una cadena terminada en NULL que contiene el nombre de archivo completo del archivo INF especificado. Este parámetro se puede establecer en NULL. El tamaño máximo de ruta de acceso admitido es MAX_PATH. Para obtener información sobre cómo determinar el tamaño necesario del búfer, consulte la siguiente sección Comentarios .

[in] ReturnBufferSize

Tamaño, en caracteres, del búfer proporcionado por ReturnBuffer.

[out, optional] RequiredSize

Puntero a una variable con tipo DWORD que recibe el tamaño, en caracteres, del búfer ReturnBuffer . Este parámetro es opcional y se puede establecer en NULL.

Valor devuelto

Si SetupGetInfDriverStoreLocation se realiza correctamente, la función devuelve TRUE; de lo contrario, la función devuelve FALSE. Para obtener información de error extendida, llame a GetLastError.

Si el tamaño, en caracteres, del nombre de archivo completo del archivo INF solicitado, incluido un terminador null, es mayor que ReturnBufferSize, se producirá un error en la función y se devolverá una llamada a GetLastError ERROR_INSUFFICIENT_BUFFER.

Comentarios

Para determinar el tamaño del búfer de retorno necesario para contener el nombre de archivo completo del archivo INF especificado en el almacén de controladores, llame a SetupGetInfDriverStoreLocation y establezca ReturnBuffer en NULL, ReturnBufferSize en cero y proporcione RequiredSize. SetupGetInfDriverStoreLocation devolverá el tamaño de búfer necesario en RequiredSize.

Cuando la instalación del dispositivo preinstala un paquete de controladores en el almacén de controladores, crea dos copias del archivo INF del paquete de controladores. La instalación de dispositivos instala una copia en el directorio INF del sistema y asigna esa copia del archivo INF un nombre de archivo publicado único con el formato OEMnnn.inf. La instalación del dispositivo instala una segunda copia del archivo INF en el almacén de controladores y asigna esa copia del nombre de archivo INF original.

SetupGetInfDriverStoreLocation devuelve el nombre de archivo completo del archivo INF en el almacén de controladores que coincide con el archivo INF, si existe, proporcionado por FileName. Filename debe especificar el nombre de archivo y, opcionalmente, la ruta de acceso del directorio, de un archivo INF en el directorio INF del sistema. Como alternativa, Filename debe especificar el nombre de archivo completo de un archivo INF en el almacén de controladores.

Por ejemplo, supongamos que el archivo INF de un paquete de controladores es Myinf.inf y que para este paquete de controladores, la instalación del dispositivo instala el archivo INF OEM1.inf en el directorio INF C:\Windows\inf. Supongamos además que la instalación del dispositivo instala la copia del archivo INF correspondiente C:\windows\system32\driverstore\filerepository\myinf_12345678\myinf.inf en el almacén de controladores. En este caso, la función devuelve C:\windows\system32\driverstore\filerepository\myinf_12345678\myinf.inf si FileName proporciona una de las siguientes cadenas: OEM1.inf, C:\Windows\inf\OEM1.inf o C:\windows\system32\driverstore\filerepository\myinf_12345678\myinf.inf.

Los instaladores de clase y los coinstaladores pueden usar SetupGetInfDriverStoreLocation para acceder a los archivos de un paquete de controladores preinstalado en el almacén de controladores. Para determinar la ruta de acceso del paquete de controladores en el almacén de controladores, el instalador hace lo siguiente:

  1. Llame a SetupDiGetDriverInfoDetail para recuperar una estructura de SP_DRVINFO_DETAIL_DATA para un controlador. El miembro InfFileName de esta estructura contiene el nombre de archivo completo del archivo INF del controlador en el directorio INF del sistema.
  2. Llame a SetupGetInfDriverStoreLocation y proporcione el nombre de archivo completo del archivo INF del controlador que se recuperó llamando a SetupDiGetDriverInfoDetail. SetupGetInfDriverStoreLocation devolverá el nombre de archivo completo del archivo INF del controlador en el almacén de controladores. La parte de la ruta de acceso del directorio del nombre de archivo completo del archivo INF es la ruta de acceso de los archivos del paquete de controladores .
NotaSetupGetInfDriverStoreLocation no procesa el contenido del archivo INF especificado en FileName. No puede usar esta función para realizar una búsqueda específica del contenido de un archivo INF en el almacén de controladores.
 
Llame a la función SetupGetInfPublishedName para recuperar el nombre de archivo completo de un archivo INF en el directorio de archivos INF del sistema que corresponde a un archivo INF especificado en el directorio de archivos INF del sistema o un archivo especificado en el almacén de controladores.

Nota

El encabezado setupapi.h define SetupGetInfDriverStoreLocation como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Windows Vista y versiones posteriores de Windows.
Plataforma de destino Escritorio
Encabezado setupapi.h (incluya Setupapi.h)
Library Setupapi.lib

Consulte también

SP_ALTPLATFORM_INFO

SP_DRVINFO_DETAIL_DATA

SetupDiGetDriverInfoDetail

SetupGetInfPublishedName