struktur MCD_INIT_DATA (mcd.h)
Driver miniclass pengubah mengisi struktur MCD_INIT_DATA dengan pointer ke rutinitas pemrosesan perintah internalnya dan meneruskannya ke driver kelas changer.
Sintaks
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;
Anggota
InitDataSize
Ukuran struktur ini dalam byte.
ChangerAdditionalExtensionSize
Rutinitas driver miniclass pointer to changer yang mengembalikan jumlah byte yang diperlukan driver miniclass changer untuk menyimpan informasi khusus perangkat di ekstensi perangkat. Rutinitas ini memiliki prototipe berikut:
typedef
ULONG
(*CHANGER_EXTENSION_SIZE)(
IN VOID
);
ChangerInitialize
Rutinitas driver miniclass pointer to changer yang melakukan inisialisasi khusus driver miniclass dan membaca pengubah untuk menerima permintaan lain. Rutinitas ini memiliki prototipe berikut:
typedef
NTSTATUS
(*CHANGER_INITIALIZE)(
IN PDEVICE_OBJECT DeviceObject
);
ChangerError
Rutinitas driver miniclass pointer to changer yang melakukan pemrosesan kesalahan khusus perangkat. Rutinitas ini memiliki prototipe berikut:
typedef
VOID
(*CHANGER_ERROR_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PSCSI_REQUEST_BLOCK Srb,
IN NTSTATUS *Status,
IN BOOLEAN *Retry
);
ChangerPerformDiagnostics
Rutinitas driver miniclass pointer to changer yang melakukan tes diagnostik pada perangkat. Rutinitas ini memiliki prototipe berikut:
typedef
NTSTATUS
(*CHANGER_PERFORM_DIAGNOSTICS)(
IN PDEVICE_OBJECT DeviceObject,
OUT PWMI_CHANGER_PROBLEM_DEVICE_ERROR changerDeviceError
);
ChangerGetParameters
Rutinitas driver miniclass pointer to changer yang menangani aspek khusus perangkat dari IRP kontrol perangkat dengan kode IOCTL IOCTL_CHANGER_GET_PARAMETERS. Rutinitas ini memiliki prototipe berikut:
typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
ChangerGetStatus
Rutinitas driver miniclass pointer to changer yang menangani aspek khusus perangkat dari IRP kontrol perangkat dengan kode IOCTL IOCTL_CHANGER_GET_STATUS. Rutinitas ini memiliki prototipe berikut:
typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
ChangerGetProductData
Penunjuk ke rutinitas driver miniclass pengubah yang menangani aspek khusus perangkat dari IRP kontrol perangkat dengan kode IOCTL IOCTL_CHANGER_GET_PRODUCT_DATA. Rutinitas ini memiliki prototipe berikut:
typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
ChangerSetAccess
Penunjuk ke rutinitas driver miniclass pengubah yang menangani aspek khusus perangkat dari IRP kontrol perangkat dengan kode IOCTL IOCTL_CHANGER_SET_ACCESS. Rutinitas ini memiliki prototipe berikut:
typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
ChangerGetElementStatus
Penunjuk ke rutinitas driver miniclass pengubah yang menangani aspek khusus perangkat dari IRP kontrol perangkat dengan kode IOCTL IOCTL_CHANGER_GET_ELEMENT_STATUS. Rutinitas ini memiliki prototipe berikut:
typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
ChangerInitializeElementStatus
Penunjuk ke rutinitas driver miniclass pengubah yang menangani aspek khusus perangkat dari IRP kontrol perangkat dengan kode IOCTL IOCTL_CHANGER_INITIALIZE_ELEMENT_STATUS. Rutinitas ini memiliki prototipe berikut:
typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
ChangerSetPosition
Penunjuk ke rutinitas driver miniclass pengubah yang menangani aspek khusus perangkat dari IRP kontrol perangkat dengan kode IOCTL IOCTL_CHANGER_SET_POSITION. Rutinitas ini memiliki prototipe berikut:
typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
ChangerExchangeMedium
Penunjuk ke rutinitas driver miniclass pengubah yang menangani aspek khusus perangkat dari IRP kontrol perangkat dengan kode IOCTL IOCTL_CHANGER_EXCHANGE_MEDIUM. Rutinitas ini memiliki prototipe berikut:
typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
ChangerMoveMedium
Penunjuk ke rutinitas driver miniclass pengubah yang menangani aspek khusus perangkat dari IRP kontrol perangkat dengan kode IOCTL IOCTL_CHANGER_MOVE_MEDIUM. Rutinitas ini memiliki prototipe berikut:
typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
ChangerReinitializeUnit
Penunjuk ke rutinitas driver miniclass pengubah yang menangani aspek khusus perangkat dari IRP kontrol perangkat dengan kode IOCTL IOCTL_CHANGER_REINITIALIZE_TRANSPORT. Rutinitas ini memiliki prototipe berikut:
typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
ChangerQueryVolumeTags
Penunjuk ke rutinitas driver miniclass pengubah yang menangani aspek khusus perangkat dari IRP kontrol perangkat dengan kode IOCTL IOCTL_CHANGER_QUERY_VOLUME_TAGS. Rutinitas ini memiliki prototipe berikut:
typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
Keterangan
Struktur ini digunakan oleh driver pengubah di Windows XP dan sistem operasi yang lebih baru saja.
Persyaratan
Persyaratan | Nilai |
---|---|
Header | mcd.h (termasuk Mcd.h) |
Lihat juga
ChangerAdditionalExtensionSize
ChangerInitializeElementStatus
IOCTL_CHANGER_GET_ELEMENT_STATUS
IOCTL_CHANGER_GET_PRODUCT_DATA