Compartir a través de


PRJ_GET_DIRECTORY_ENUMERATION_CB función de devolución de llamada (projectedfslib.h)

Solicita información de enumeración de directorios del proveedor.

Sintaxis

PRJ_GET_DIRECTORY_ENUMERATION_CB PrjGetDirectoryEnumerationCb;

HRESULT PrjGetDirectoryEnumerationCb(
  [in]           const PRJ_CALLBACK_DATA *callbackData,
  [in]           const GUID *enumerationId,
  [in, optional] PCWSTR searchExpression,
  [in]           PRJ_DIR_ENTRY_BUFFER_HANDLE dirEntryBufferHandle
)
{...}

Parámetros

[in] callbackData

Información sobre la operación. Los siguientes miembros callbackData son necesarios para implementar esta devolución de llamada:

FilePathName Identifica el directorio que se va a enumerar.
VersionInfo Proporciona información de versión para el directorio que se va a enumerar.
Banderas Marcas para controlar lo que se devuelve en la enumeración . Los valores válidos son:
PRJ_CB_DATA_FLAG_ENUM_RETURN_SINGLE_ENTRY Este bit se establece si el usuario solicita solo una entrada de la enumeración. El proveedor puede tratar esto como una sugerencia y puede optar por devolver más de una entrada para que una enumeración que devuelva un elemento a la vez sea más eficaz. En tal caso, ProjFS devolverá una única entrada al usuario, invocando al proveedor solo cuando necesite más entradas.
PRJ_CB_DATA_FLAG_ENUM_RESTART_SCAN Este bit se establece si la enumeración se inicia en la primera entrada del directorio. En la primera invocación de esta devolución de llamada para una sesión de enumeración, el proveedor debe tratar esta marca como establecida, independientemente de su valor. Todas las enumeraciones deben comenzar en la primera entrada. En las invocaciones posteriores de esta devolución de llamada, el proveedor debe respetar este valor.
 

El proveedor solo puede acceder a este búfer mientras se ejecuta la devolución de llamada. Si desea lápiz la operación y requiere datos de este búfer, debe realizar su propia copia.

[in] enumerationId

Identificador de esta sesión de enumeración.

[in, optional] searchExpression

Puntero a una cadena Unicode terminada en null que especifica una expresión de búsqueda. La expresión de búsqueda puede incluir caracteres comodín. El proveedor debe usar la función PrjDoesNameContainWildCards para determinar si los caracteres comodín están presentes en searchExpression y debe usar la función PrjFileNameMatch para determinar si una entrada de su almacén de respaldo coincide con una expresión de búsqueda que contiene caracteres comodín.

Este parámetro es opcional y puede ser NULL.

  • Si este parámetro no es NULL, el proveedor debe devolver solo las entradas de directorio cuyos nombres coincidan con la expresión de búsqueda.
  • Si este parámetro es NULL, el proveedor debe devolver todas las entradas de directorio.

El proveedor debe capturar el valor de este parámetro en la primera invocación de esta devolución de llamada para una sesión de enumeración y usarlo en invocaciones posteriores, ignorando este parámetro en esas invocaciones a menos que se especifique PRJ_CB_DATA_FLAG_ENUM_RESTART_SCAN en el miembro Flags de callbackData. En ese caso, el proveedor debe volver a capturar el valor de searchExpression.

[in] dirEntryBufferHandle

Identificador opaco de una estructura que recibe los resultados de la enumeración del proveedor. El proveedor usa la rutina PrjFillDirEntryBuffer para rellenar la estructura.

Valor devuelto

Código devuelto Descripción
S_OK
El proveedor agregó correctamente al menos una entrada a dirEntryBufferHandle o ninguna entrada en la búsqueda searchExpression de la tienda del proveedor.
HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER)
El proveedor recibió este error de PrjFillDirEntryBuffer para el primer archivo o directorio que intentó agregar a dirEntryBufferHandle.
HRESULT_FROM_WIN32(ERROR_IO_PENDING)
El proveedor desea completar la operación más adelante.
 

Un código de error HRESULT adecuado si el proveedor produce un error en la operación.

Comentarios

ProjFS invoca esta devolución de llamada una o varias veces después de invocar PRJ_START_DIRECTORY_ENUMERATION_CB. Consulte la sección Comentarios de PRJ_START_DIRECTORY_ENUMERATION_CB para obtener más información.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 10, versión 1809 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado projectedfslib.h