123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- /*
- * mcd.h
- *
- * Media changer driver interface
- *
- * This file is part of the w32api package.
- *
- * Contributors:
- * Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
- *
- * THIS SOFTWARE IS NOT COPYRIGHTED
- *
- * This source code is offered for use in the public domain. You may
- * use, modify or distribute it freely.
- *
- * This code is distributed in the hope that it will be useful but
- * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- * DISCLAIMED. This includes but is not limited to warranties of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- */
- #ifndef __MCD_H
- #define __MCD_H
- #include "srb.h"
- #include "scsi.h"
- #include "ntddchgr.h"
- #ifdef __cplusplus
- extern "C" {
- #endif
- #if defined(_MCD_)
- #define CHANGERAPI
- #else
- #define CHANGERAPI DECLSPEC_IMPORT
- #endif
- #ifdef DebugPrint
- #undef DebugPrint
- #endif
- #if DBG
- #define DebugPrint(x) ChangerClassDebugPrint x
- #else
- #define DebugPrint(x)
- #endif
- #define MAXIMUM_CHANGER_INQUIRY_DATA 252
- CHANGERAPI
- PVOID
- NTAPI
- ChangerClassAllocatePool(
- IN POOL_TYPE PoolType,
- IN ULONG NumberOfBytes);
- VOID
- ChangerClassDebugPrint(
- ULONG DebugPrintLevel,
- PCCHAR DebugMessage,
- ...);
- CHANGERAPI
- PVOID
- NTAPI
- ChangerClassFreePool(
- IN PVOID PoolToFree);
- CHANGERAPI
- NTSTATUS
- NTAPI
- ChangerClassSendSrbSynchronous(
- IN PDEVICE_OBJECT DeviceObject,
- IN PSCSI_REQUEST_BLOCK Srb,
- IN PVOID Buffer,
- IN ULONG BufferSize,
- IN BOOLEAN WriteToDevice);
- typedef NTSTATUS NTAPI
- (*CHANGER_INITIALIZE)(
- IN PDEVICE_OBJECT DeviceObject);
- typedef ULONG NTAPI
- (*CHANGER_EXTENSION_SIZE)(
- VOID);
- typedef VOID NTAPI
- (*CHANGER_ERROR_ROUTINE)(
- PDEVICE_OBJECT DeviceObject,
- PSCSI_REQUEST_BLOCK Srb,
- NTSTATUS *Status,
- BOOLEAN *Retry);
- typedef NTSTATUS NTAPI
- (*CHANGER_COMMAND_ROUTINE)(
- IN PDEVICE_OBJECT DeviceObject,
- IN PIRP Irp);
- typedef NTSTATUS NTAPI
- (*CHANGER_PERFORM_DIAGNOSTICS)(
- IN PDEVICE_OBJECT DeviceObject,
- OUT PWMI_CHANGER_PROBLEM_DEVICE_ERROR ChangerDeviceError);
- 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;
- CHANGERAPI
- NTSTATUS
- NTAPI
- ChangerClassInitialize(
- IN PDRIVER_OBJECT DriverObject,
- IN PUNICODE_STRING RegistryPath,
- IN PMCD_INIT_DATA MCDInitData);
- #ifdef __cplusplus
- }
- #endif
- #endif /* __MCD_H */
|