Função ChangerReinitializeUnit (mcd.h)

ChangerReinitializeUnit manipula os aspectos específicos do dispositivo de um IRP de controle de dispositivo com o código IOCTL IOCTL_CHANGER_REINITIALIZE_TRANSPORT.

Sintaxe

NTSTATUS ChangerReinitializeUnit(
  [in] PDEVICE_OBJECT DeviceObject,
  [in] PIRP           Irp
);

Parâmetros

[in] DeviceObject

Ponteiro para o objeto do dispositivo que representa o alterador.

[in] Irp

Ponteiro para o IRP.

Retornar valor

Se o alterador der suporte à recalibrar um elemento de transporte, ChangerReinitializeUnit retornará o valor STATUS_XXX retornado pelo driver de porta do sistema ou um dos seguintes valores:

STATUS_SUCCESS

STATUS_INVALID_ELEMENT_ADDRESS

STATUS_INVALID_PARAMETER

STATUS_INSUFFICIENT_RESOURCES

Se o alterador não der suporte à recalibrar um elemento de transporte, ChangerReinitializeUnit retornará STATUS_INVALID_DEVICE_REQUEST.

Comentários

Essa rotina é necessária.

ChangerReinitializeUnit faz com que o alterador recalibre seu elemento de transporte. Dependendo do alterador, isso pode retornar o transporte para uma posição "home". O driver de classe do alterador normalmente chama ChangerReinitializeUnit depois que o alterador é ativado ou um aplicativo de chamada inicia uma operação de recuperação. O sinalizador CHANGER_DEVICE_REINITIALIZE_CAPABLE em Recursos0 de GET_CHANGER_PARAMETERS indica se o transporte do alterador dá suporte à recalibração nessas circunstâncias.

O driver de classe do alterador verifica o comprimento do buffer de entrada no local da pilha de E/S antes de chamar ChangerReinitializeUnit. Irp-SystemBuffer> aponta para uma estrutura CHANGER_ELEMENT que indica o elemento a ser recalibrado.

ChangerReinitializeUnit cria um SRB com um CDB para posicionar o elemento de transporte e o envia para o driver de porta do sistema.

ChangerReinitializeUnit define o campo Informações no bloco de E/S status como sizeof(CHANGER_ELEMENT) antes de retornar ao driver de classe do alterador.

Requisitos

Requisito Valor
Plataforma de Destino Área de Trabalho
Cabeçalho mcd.h (include Mcd.h, Ntddchgr.h)
IRQL PASSIVE_LEVEL

Confira também

, IOCTL_CHANGER_REINITIALIZE_TRANSPORT

CHANGER_ELEMENT

GET_CHANGER_PARAMETERS