Função IoSetPartitionInformationEx (ntddk.h)

Para o disco representado por DeviceObject, a rotina IoSetPartitionInformationEx inicializa uma entrada de tabela de partição com as informações especificadas na estrutura SET_PARTITION_INFORMATION_EX .

Sintaxe

NTSTATUS IoSetPartitionInformationEx(
  [in] PDEVICE_OBJECT                DeviceObject,
  [in] ULONG                         PartitionNumber,
  [in] _SET_PARTITION_INFORMATION_EX *PartitionInfo
);

Parâmetros

[in] DeviceObject

Ponteiro para o objeto de dispositivo que representa o dispositivo no qual o tipo de partição deve ser definido.

[in] PartitionNumber

Especifica o número da partição no dispositivo cujo tipo de partição deve ser definido.

[in] PartitionInfo

Uma estrutura cujo membro PartitionType especifica o tipo para a partição. Para os valores partitionType definidos no momento PARTITION_INFORMATION.

Retornar valor

Se IoSetPartitionInformationEx retornar STATUS_SUCCESS, o driver de disco atualizará sua noção do tipo de partição para essa partição em sua extensão de dispositivo.

Comentários

IoSetPartitionInformationEx só deve ser usado por drivers de disco. Em vez disso, outros drivers devem usar a solicitação de E/S de disco IOCTL_DISK_SET_PARTITION_INFO_EX .

Essa rotina é chamada quando um driver de dispositivo de disco é solicitado a definir informações de partição em uma entrada de tabela de partição por uma solicitação de IRP_MJ_DEVICE_CONTROL. Essa solicitação geralmente é emitida pelo utilitário de formato , que executa funções de controle de E/S na partição. O driver passa um ponteiro para o objeto de dispositivo que representa o disco físico e o número da partição associada ao objeto de dispositivo que o utilitário de formato abriu. Como as rotinas HAL subjacentes a IoSetPartitionInformationEx foram desenvolvidas antes do suporte para particionamento dinâmico ser implementado, elas não distinguem entre o partitionordinal (que é a ordem de uma partição em um disco) e o número da partição (o número da partição atribuído a uma partição para identificá-la ao sistema). Os drivers devem chamar IoSetPartitionInformationEx usando o número ordinal da partição e não o número de partição real.

Se a partição for uma partição de tipo MBR (Registro Mestre de Inicialização), IoSetPartitionInformationEx será limitado a definir o estilo de partição e o estilo de partição, que é representado como um caractere não assinado. Consulte SET_PARTITION_INFORMATION_MBR para obter mais informações sobre esses valores.

Se a partição for uma partição DE TABELA de Partição GUID (GPT), IoSetPartitionInformationEx definirá os seguintes valores: o estilo de partição, o tipo de partição, representado por um GUID em vez de um inteiro como foi o caso com partições MBR; uma ID de partição, também representada por um GUID; um conjunto de atributos (consulte a Interface de Firmware Extensível para obter uma descrição desses atributos); e um nome Unicode para a partição. Consulte SET_PARTITION_INFORMATION_GPT para obter mais informações sobre esses valores.

Essa rotina é síncrona e deve ser chamada pela rotina dispatch do driver de disco ou por um thread de driver. Portanto, todos os threads do sistema de arquivos e de usuário devem estar preparados para entrar em um estado de espera ao emitir a solicitação de controle de dispositivo para definir o tipo de partição para o dispositivo.

Essa rotina opera sob a suposição de que o número de partição passado pelo driver de disco realmente existe.

Essa rotina deve ser chamada em IRQL = PASSIVE_LEVEL porque usa um objeto de evento kernel para sincronizar a conclusão de E/S no dispositivo. O evento não pode ser definido como o estado Sinalizado sem enfileirar e executar a rotina especial de APC do kernel do sistema de E/S para conclusão de E/S.

Requisitos

Requisito Valor
Plataforma de Destino Universal
Cabeçalho ntddk.h (inclua Ntddk.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL (consulte a seção Comentários)
Regras de conformidade da DDI HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

Confira também

IoReadPartitionTable

IoSetPartitionInformation

IoWritePartitionTable

SET_PARTITION_INFORMATION

SET_PARTITION_INFORMATION_EX