Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
mcd.h
00001 /* 00002 * mcd.h 00003 * 00004 * Media changer driver interface 00005 * 00006 * This file is part of the w32api package. 00007 * 00008 * Contributors: 00009 * Created by Casper S. Hornstrup <chorns@users.sourceforge.net> 00010 * 00011 * THIS SOFTWARE IS NOT COPYRIGHTED 00012 * 00013 * This source code is offered for use in the public domain. You may 00014 * use, modify or distribute it freely. 00015 * 00016 * This code is distributed in the hope that it will be useful but 00017 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY 00018 * DISCLAIMED. This includes but is not limited to warranties of 00019 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00020 * 00021 */ 00022 00023 #ifndef __MCD_H 00024 #define __MCD_H 00025 00026 #if __GNUC__ >=3 00027 #pragma GCC system_header 00028 #endif 00029 00030 #ifdef __cplusplus 00031 extern "C" { 00032 #endif 00033 00034 #include "ntddk.h" 00035 #include "srb.h" 00036 #include "scsi.h" 00037 #include "ntddchgr.h" 00038 00039 #if defined(_MCD_) 00040 #define CHANGERAPI DECLSPEC_EXPORT 00041 #else 00042 #define CHANGERAPI DECLSPEC_IMPORT 00043 #endif 00044 00045 #ifdef DebugPrint 00046 #undef DebugPrint 00047 #endif 00048 00049 #ifdef DBG 00050 #define DebugPrint(x) ChangerClassDebugPrint x 00051 #else 00052 #define DebugPrint(x) 00053 #endif 00054 00055 #define MAXIMUM_CHANGER_INQUIRY_DATA 252 00056 00057 CHANGERAPI 00058 PVOID 00059 DDKAPI 00060 ChangerClassAllocatePool( 00061 /*IN*/ POOL_TYPE PoolType, 00062 /*IN*/ ULONG NumberOfBytes); 00063 00064 VOID 00065 ChangerClassDebugPrint( 00066 ULONG DebugPrintLevel, 00067 PCCHAR DebugMessage, 00068 ...); 00069 00070 CHANGERAPI 00071 PVOID 00072 DDKAPI 00073 ChangerClassFreePool( 00074 /*IN*/ PVOID PoolToFree); 00075 00076 CHANGERAPI 00077 NTSTATUS 00078 DDKAPI 00079 ChangerClassSendSrbSynchronous( 00080 /*IN*/ PDEVICE_OBJECT DeviceObject, 00081 /*IN*/ PSCSI_REQUEST_BLOCK Srb, 00082 /*IN*/ PVOID Buffer, 00083 /*IN*/ ULONG BufferSize, 00084 /*IN*/ BOOLEAN WriteToDevice); 00085 00086 00087 typedef NTSTATUS DDKAPI 00088 (*CHANGER_INITIALIZE)( 00089 /*IN*/ PDEVICE_OBJECT DeviceObject); 00090 00091 typedef ULONG DDKAPI 00092 (*CHANGER_EXTENSION_SIZE)( 00093 VOID); 00094 00095 typedef VOID DDKAPI 00096 (*CHANGER_ERROR_ROUTINE)( 00097 PDEVICE_OBJECT DeviceObject, 00098 PSCSI_REQUEST_BLOCK Srb, 00099 NTSTATUS *Status, 00100 BOOLEAN *Retry); 00101 00102 typedef NTSTATUS DDKAPI 00103 (*CHANGER_COMMAND_ROUTINE)( 00104 /*IN*/ PDEVICE_OBJECT DeviceObject, 00105 /*IN*/ PIRP Irp); 00106 00107 typedef NTSTATUS DDKAPI 00108 (*CHANGER_PERFORM_DIAGNOSTICS)( 00109 /*IN*/ PDEVICE_OBJECT DeviceObject, 00110 /*OUT*/ PWMI_CHANGER_PROBLEM_DEVICE_ERROR ChangerDeviceError); 00111 00112 typedef struct _MCD_INIT_DATA { 00113 ULONG InitDataSize; 00114 CHANGER_EXTENSION_SIZE ChangerAdditionalExtensionSize; 00115 CHANGER_INITIALIZE ChangerInitialize; 00116 CHANGER_ERROR_ROUTINE ChangerError; 00117 CHANGER_PERFORM_DIAGNOSTICS ChangerPerformDiagnostics; 00118 CHANGER_COMMAND_ROUTINE ChangerGetParameters; 00119 CHANGER_COMMAND_ROUTINE ChangerGetStatus; 00120 CHANGER_COMMAND_ROUTINE ChangerGetProductData; 00121 CHANGER_COMMAND_ROUTINE ChangerSetAccess; 00122 CHANGER_COMMAND_ROUTINE ChangerGetElementStatus; 00123 CHANGER_COMMAND_ROUTINE ChangerInitializeElementStatus; 00124 CHANGER_COMMAND_ROUTINE ChangerSetPosition; 00125 CHANGER_COMMAND_ROUTINE ChangerExchangeMedium; 00126 CHANGER_COMMAND_ROUTINE ChangerMoveMedium; 00127 CHANGER_COMMAND_ROUTINE ChangerReinitializeUnit; 00128 CHANGER_COMMAND_ROUTINE ChangerQueryVolumeTags; 00129 } MCD_INIT_DATA, *PMCD_INIT_DATA; 00130 00131 CHANGERAPI 00132 NTSTATUS 00133 DDKAPI 00134 ChangerClassInitialize( 00135 /*IN*/ PDRIVER_OBJECT DriverObject, 00136 /*IN*/ PUNICODE_STRING RegistryPath, 00137 /*IN*/ PMCD_INIT_DATA MCDInitData); 00138 00139 #ifdef __cplusplus 00140 } 00141 #endif 00142 00143 #endif /* __MCD_H */
Generated on Tue Jul 12 2022 19:59:54 by
