estrutura MCD_INIT_DATA (mcd.h)
O driver de miniclasse do alterador preenche a estrutura de MCD_INIT_DATA com ponteiros para suas rotinas internas de processamento de comando e os passa para o driver de classe do alterador.
Sintaxe
typedef struct _MCD_INIT_DATA {
ULONG InitDataSize;
CHANGER_EXTENSION_SIZE ChangerAdditionalExtensionSize;
CHANGER_INITIALIZE ChangerInitialize;
CHANGER_ERROR_ROUTINE ChangerError;
CHANGER_PERFORM_DIAGNOSTICS ChangerPerformDiagnostics;
CHANGER_COMMAND_ROUTINE ChangerGetParameters;
CHANGER_COMMAND_ROUTINE ChangerGetStatus;
CHANGER_COMMAND_ROUTINE ChangerGetProductData;
CHANGER_COMMAND_ROUTINE ChangerSetAccess;
CHANGER_COMMAND_ROUTINE ChangerGetElementStatus;
CHANGER_COMMAND_ROUTINE ChangerInitializeElementStatus;
CHANGER_COMMAND_ROUTINE ChangerSetPosition;
CHANGER_COMMAND_ROUTINE ChangerExchangeMedium;
CHANGER_COMMAND_ROUTINE ChangerMoveMedium;
CHANGER_COMMAND_ROUTINE ChangerReinitializeUnit;
CHANGER_COMMAND_ROUTINE ChangerQueryVolumeTags;
} MCD_INIT_DATA, *PMCD_INIT_DATA;
Membros
InitDataSize
Tamanho dessa estrutura em bytes.
ChangerAdditionalExtensionSize
Ponteiro para a rotina de driver de miniclasse do alterador que retorna o número de bytes que o driver de miniclasse do alterador requer para armazenar informações específicas do dispositivo na extensão do dispositivo. Essa rotina tem o seguinte protótipo:
typedef
ULONG
(*CHANGER_EXTENSION_SIZE)(
IN VOID
);
ChangerInitialize
Ponteiro para a rotina de driver de miniclasse do alterador que faz a inicialização específica do driver de miniclasse e lê o alterador para receber outras solicitações. Essa rotina tem o seguinte protótipo:
typedef
NTSTATUS
(*CHANGER_INITIALIZE)(
IN PDEVICE_OBJECT DeviceObject
);
ChangerError
Ponteiro para a rotina de driver de miniclasse do alterador que faz o processamento de erro específico do dispositivo. Essa rotina tem o seguinte protótipo:
typedef
VOID
(*CHANGER_ERROR_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PSCSI_REQUEST_BLOCK Srb,
IN NTSTATUS *Status,
IN BOOLEAN *Retry
);
ChangerPerformDiagnostics
Ponteiro para a rotina de driver de miniclasse do alterador que executa testes de diagnóstico no dispositivo. Essa rotina tem o seguinte protótipo:
typedef
NTSTATUS
(*CHANGER_PERFORM_DIAGNOSTICS)(
IN PDEVICE_OBJECT DeviceObject,
OUT PWMI_CHANGER_PROBLEM_DEVICE_ERROR changerDeviceError
);
ChangerGetParameters
Ponteiro para a rotina de driver de miniclasse do alterador que manipula os aspectos específicos do dispositivo de um IRP de controle de dispositivo com o código IOCTL IOCTL_CHANGER_GET_PARAMETERS. Essa rotina tem o seguinte protótipo:
typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
ChangerGetStatus
Ponteiro para a rotina de driver de miniclasse do alterador que manipula os aspectos específicos do dispositivo de um IRP de controle de dispositivo com o código IOCTL IOCTL_CHANGER_GET_STATUS. Essa rotina tem o seguinte protótipo:
typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
ChangerGetProductData
Ponteiro para uma rotina de driver miniclasse do alterador que manipula os aspectos específicos do dispositivo de um IRP de controle de dispositivo com o código IOCTL IOCTL_CHANGER_GET_PRODUCT_DATA. Essa rotina tem o seguinte protótipo:
typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
ChangerSetAccess
Ponteiro para uma rotina de driver de miniclasse do alterador que manipula os aspectos específicos do dispositivo de um IRP de controle de dispositivo com o código IOCTL IOCTL_CHANGER_SET_ACCESS. Essa rotina tem o seguinte protótipo:
typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
ChangerGetElementStatus
Ponteiro para uma rotina de driver de miniclasse do alterador que manipula os aspectos específicos do dispositivo de um IRP de controle de dispositivo com o código IOCTL IOCTL_CHANGER_GET_ELEMENT_STATUS. Essa rotina tem o seguinte protótipo:
typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
ChangerInitializeElementStatus
Ponteiro para uma rotina de driver de miniclasse do alterador que manipula os aspectos específicos do dispositivo de um IRP de controle de dispositivo com o código IOCTL IOCTL_CHANGER_INITIALIZE_ELEMENT_STATUS. Essa rotina tem o seguinte protótipo:
typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
ChangerSetPosition
Ponteiro para uma rotina de driver de miniclasse do alterador que manipula os aspectos específicos do dispositivo de um IRP de controle de dispositivo com o código IOCTL IOCTL_CHANGER_SET_POSITION. Essa rotina tem o seguinte protótipo:
typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
ChangerExchangeMedium
Ponteiro para uma rotina de driver de miniclasse do alterador que manipula os aspectos específicos do dispositivo de um IRP de controle de dispositivo com o código IOCTL IOCTL_CHANGER_EXCHANGE_MEDIUM. Essa rotina tem o seguinte protótipo:
typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
ChangerMoveMedium
Ponteiro para uma rotina de driver de miniclasse do alterador que manipula os aspectos específicos do dispositivo de um IRP de controle de dispositivo com o código IOCTL IOCTL_CHANGER_MOVE_MEDIUM. Essa rotina tem o seguinte protótipo:
typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
ChangerReinitializeUnit
Ponteiro para uma rotina de driver miniclasse do alterador que manipula os aspectos específicos do dispositivo de um IRP de controle de dispositivo com o código IOCTL IOCTL_CHANGER_REINITIALIZE_TRANSPORT. Essa rotina tem o seguinte protótipo:
typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
ChangerQueryVolumeTags
Ponteiro para uma rotina de driver miniclasse do alterador que manipula os aspectos específicos do dispositivo de um IRP de controle de dispositivo com o código IOCTL de IOCTL_CHANGER_QUERY_VOLUME_TAGS. Essa rotina tem o seguinte protótipo:
typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
Comentários
Essa estrutura é usada pelo driver de alteração somente no Windows XP e em sistemas operacionais posteriores.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | mcd.h (inclua Mcd.h) |
Confira também
ChangerAdditionalExtensionSize
ChangerInitializeElementStatus
IOCTL_CHANGER_GET_ELEMENT_STATUS
IOCTL_CHANGER_GET_PRODUCT_DATA