33ScratchBuffer_Deallocate(
39ScratchBuffer_Allocate(
51ScratchBuffer_SetupSrb(
85 #define ScratchBuffer_BeginUse(context) ScratchBuffer_BeginUseX((context), __FILE__, __LINE__)
87 #define ScratchBuffer_BeginUse(context) ScratchBuffer_BeginUseX((context), NULL, (ULONG)-1)
98 DeviceExtension->ScratchContext.ScratchInUseFileName =
File;
99 DeviceExtension->ScratchContext.ScratchInUseLineNumber =
Line;
114 PCSTR scratchInUseFileName;
115 ULONG scratchInUseLineNumber;
118 scratchInUseFileName = DeviceExtension->ScratchContext.ScratchInUseFileName;
119 scratchInUseLineNumber = DeviceExtension->ScratchContext.ScratchInUseLineNumber;
122 DeviceExtension->ScratchContext.ScratchInUseFileName =
NULL;
123 DeviceExtension->ScratchContext.ScratchInUseLineNumber = 0;
130 if (DeviceExtension->ScratchContext.PartialMdlIsBuilt !=
FALSE)
133 DeviceExtension->ScratchContext.PartialMdlIsBuilt =
FALSE;
154ScratchBuffer_ExecuteCdbEx(
167ScratchBuffer_ExecuteCdb(
176 return ScratchBuffer_ExecuteCdbEx(DeviceExtension,
_In_ PFCB _In_ LONGLONG StartingOffset
VOID RequestClearSendTime(_In_ WDFREQUEST Request)
_In_opt_ PIRP _In_ PSCSI_REQUEST_BLOCK _In_ UCHAR _In_ ULONG _In_ ULONG _In_opt_ SRB_HISTORY * RequestHistory
#define _IRQL_requires_max_(irql)
#define InterlockedCompareExchangePointer
#define _Inout_updates_bytes_(size)
#define _When_(expr, annos)
#define UNREFERENCED_PARAMETER(P)
_In_opt_ WDFREQUEST _In_ ULONG _In_ BOOLEAN _In_ PCDB _In_ UCHAR _In_ ULONG TimeoutValue
VOID ScratchBuffer_ResetItems(_Inout_ PCDROM_DEVICE_EXTENSION DeviceExtension, _In_ BOOLEAN ResetRequestHistory)
FORCEINLINE VOID ScratchBuffer_EndUse(_Inout_ PCDROM_DEVICE_EXTENSION DeviceExtension)
FORCEINLINE VOID ScratchBuffer_BeginUseX(_Inout_ PCDROM_DEVICE_EXTENSION DeviceExtension, _In_opt_ LPCSTR File, ULONG Line)
_In_opt_ WDFREQUEST _In_ ULONG _In_ BOOLEAN _In_ PCDB Cdb
_In_opt_ WDFREQUEST _In_ ULONG MaximumTransferLength
_In_opt_ WDFREQUEST OriginalRequest
_In_opt_ WDFREQUEST _In_ ULONG TransferSize
_In_opt_ WDFREQUEST _In_ ULONG _In_ BOOLEAN _In_ PCDB _In_ UCHAR OprationLength
KDEFERRED_ROUTINE ScratchBuffer_ReadWriteTimerRoutine
NTSTATUS ScratchBuffer_SendSrb(_Inout_ PCDROM_DEVICE_EXTENSION DeviceExtension, _In_ BOOLEAN SynchronousSrb, _When_(SynchronousSrb, _Pre_null_) _When_(!SynchronousSrb, _In_opt_) PSRB_HISTORY_ITEM *SrbHistoryItem)
_In_opt_ WDFREQUEST _In_ ULONG _In_ BOOLEAN GetDataFromDevice
VOID ValidateSrbHistoryDataPresumptions(_In_ SRB_HISTORY const *RequestHistory)
NTSTATUS ScratchBuffer_PerformNextReadWrite(_In_ PCDROM_DEVICE_EXTENSION DeviceExtension, _In_ BOOLEAN FirstTry)
VOID CompressSrbHistoryData(_Inout_ PSRB_HISTORY RequestHistory)
VOID ScratchBuffer_SetupReadWriteSrb(_Inout_ PCDROM_DEVICE_EXTENSION DeviceExtension, _In_ WDFREQUEST OriginalRequest, _In_ LARGE_INTEGER StartingOffset, _In_ ULONG RequiredLength, _Inout_updates_bytes_(RequiredLength) UCHAR *DataBuffer, _In_ BOOLEAN IsReadRequest, _In_ BOOLEAN UsePartialMdl)
_In_ ULONG _Out_opt_ PULONG RequiredLength
#define MmPrepareMdlForReuse(_Mdl)