Método IVdsLun::Extend (vds.h)
[Começando com Windows 8 e Windows Server 2012, a interface COM do Serviço de Disco Virtual é substituída pela API de Gerenciamento de Armazenamento do Windows.]
Estende um LUN por um número especificado de bytes.
Sintaxe
HRESULT Extend(
[in] ULONGLONG ullNumberOfBytesToAdd,
[in] VDS_OBJECT_ID *pDriveIdArray,
[in] LONG lNumberOfDrives,
[out] IVdsAsync **ppAsync
);
Parâmetros
[in] ullNumberOfBytesToAdd
O número de bytes pelos quais estender o LUN. O número de bytes não é necessário para ser um múltiplo mesmo do tamanho do bloco ou setor das unidades. O provedor pode arredondar ou reduzir o número de bytes para atender aos requisitos de alinhamento ou outras restrições. Na maioria dos casos, o provedor arredonda para cima, garantindo que, com raras exceções, o LUN seja estendido pelo menos pelo número de bytes solicitados.
[in] pDriveIdArray
Um ponteiro para uma matriz de GUIDs de unidade. O provedor usa essas unidades para estender o LUN. As unidades são usadas na sequência especificada; o provedor usa todas as extensões em uma unidade antes de passar para a próxima e para quando o LUN foi estendido pelo número solicitado de bytes.
Como alternativa, o chamador pode direcionar o provedor para selecionar as unidades automaticamente passando NULL nesse parâmetro e zero no parâmetro lNumberOfDrives . Observe que passar NULL só será válido se o parâmetro lNumberOfDrives for zero.
[in] lNumberOfDrives
O número de unidades especificadas no parâmetro pDriveIdArray . Se o chamador passar zero, o provedor selecionará as unidades.
[out] ppAsync
O endereço de um ponteiro de interface IVdsAsync , que o VDS inicializa no retorno. Os chamadores devem liberar a interface. Use essa interface para cancelar, aguardar ou consultar o status da operação.
Retornar valor
Esse método pode retornar valores HRESULT padrão, como E_INVALIDARG ou E_OUTOFMEMORY, e valores retornados específicos do VDS. Ele também pode retornar códigos de erro do sistema convertidos usando a macro HRESULT_FROM_WIN32 . Os erros podem se originar do próprio VDS ou do provedor de VDS subjacente que está sendo usado. Os possíveis valores retornados incluem o seguinte.
Retornar código/valor | Descrição |
---|---|
|
Esse valor retornado sinaliza um problema de software ou comunicação dentro de um provedor que armazena em cache informações sobre a matriz. Use o método IVdsHwProvider::Reenumerate seguido pelo método IVdsHwProvider::Refresh para restaurar o cache. |
|
O objeto LUN não está mais presente. |
|
O LUN está em um estado de falha e não consegue executar a operação solicitada. |
|
Outra operação está em andamento; essa operação não pode continuar até que a operação ou as operações anteriores sejam concluídas. |
|
Pode ser retornado de qualquer método que usa uma constante VDS_OBJECT_ID . Esse valor retornado indica que o identificador não se refere a um objeto existente. |
|
Essa operação ou combinação de parâmetros não é compatível com esse provedor. |
|
Não há espaço utilizável suficiente para esta operação. |
|
Não há unidades gratuitas suficientes no subsistema para concluir essa operação. |
Comentários
Os chamadores podem especificar uma lista de unidades para o provedor usar para estender o LUN ou direcionar o provedor para selecionar as unidades automaticamente.
Depois que o LUN for estendido, o chamador deverá usar o código de controle IOCTL_DISK_UPDATE_PROPERTIES para tornar o tamanho do disco atualizado visível no computador para o qual o LUN é desmascarado.
Os implementadores devem retornar um ponteiro para a interface IVdsAsync para esse método, independentemente de a chamada iniciar uma operação assíncrona.
Se o parâmetro ullNumberOfBytesToAdd for maior do que o número de bytes disponíveis nas unidades especificadas no parâmetro pDriveIdArray , use as unidades especificadas primeiro e selecione de qualquer outra unidade disponível. Se não houver unidades suficientes para estender o LUN pelo número solicitado de bytes, retorne um erro e não estenda o LUN.
Requisitos
Cliente mínimo com suporte | Windows Vista [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | vds.h |
Biblioteca | Uuid.lib |