22 #pragma alloc_text(PAGE, RfsdAllocateIrpContext) 23 #pragma alloc_text(PAGE, RfsdFreeIrpContext) 24 #pragma alloc_text(PAGE, RfsdAllocateFcb) 25 #pragma alloc_text(PAGE, RfsdFreeFcb) 26 #pragma alloc_text(PAGE, RfsdAllocateMcb) 27 #pragma alloc_text(PAGE, RfsdSearchMcbTree) 28 #pragma alloc_text(PAGE, RfsdSearchMcb) 29 #pragma alloc_text(PAGE, RfsdGetFullFileName) 30 #pragma alloc_text(PAGE, RfsdRefreshMcb) 31 #pragma alloc_text(PAGE, RfsdAddMcbNode) 32 #pragma alloc_text(PAGE, RfsdDeleteMcbNode) 33 #pragma alloc_text(PAGE, RfsdFreeMcbTree) 35 #pragma alloc_text(PAGE, RfsdCheckBitmapConsistency) 36 #pragma alloc_text(PAGE, RfsdCheckSetBlock) 37 #endif // !RFSD_READ_ONLY 38 #pragma alloc_text(PAGE, RfsdInitializeVcb) 39 #pragma alloc_text(PAGE, RfsdFreeCcb) 40 #pragma alloc_text(PAGE, RfsdAllocateCcb) 41 #pragma alloc_text(PAGE, RfsdFreeVcb) 42 #pragma alloc_text(PAGE, RfsdCreateFcbFromMcb) 43 #pragma alloc_text(PAGE, RfsdSyncUninitializeCacheMap) 66 ExAllocateFromNPagedLookasideList(
73 if (IrpContext ==
NULL) {
115 if (IoStackLocation->
Parameters.MountVolume.Vpb) {
117 IoStackLocation->
Parameters.MountVolume.Vpb->RealDevice;
129 #if (_WIN32_WINNT >= 0x0500) 137 #endif //(_WIN32_WINNT >= 0x0500) 167 Irp = IrpContext->Irp;
172 Irp->IoStatus.Information = 0;
182 IrpContext->Irp =
NULL;
208 IrpContext->Identifier.Type = 0;
209 IrpContext->Identifier.Size = 0;
215 IrpContext->Identifier.Type = 0;
216 IrpContext->Identifier.Size = 0;
239 Repinned = &IrpContext->Repinned;
255 Repinned = Repinned->
Next;
278 Repinned = Repinned->
Next;
297 Repinned = &IrpContext->Repinned;
303 while (Repinned !=
NULL) {
349 if (Repinned != &IrpContext->Repinned)
353 Saved = Repinned->
Next;
359 Repinned = Repinned->
Next;
374 IrpContext->Irp->IoStatus = RaiseIosb;
420 &
Fcb->FileLockAnchor,
425 Fcb->ReferenceCount = 0;
431 Fcb->AnsiFileName.MaximumLength = (
USHORT)
437 if (!
Fcb->AnsiFileName.Buffer) {
444 &(RfsdMcb->ShortName));
461 Fcb->RfsdMcb = RfsdMcb;
462 RfsdMcb->RfsdFcb =
Fcb;
482 Fcb->SectionObject.DataSectionObject =
NULL;
483 Fcb->SectionObject.SharedCacheMap =
NULL;
484 Fcb->SectionObject.ImageSectionObject =
NULL;
513 if (
Fcb->AnsiFileName.Buffer)
650 Ccb->CurrentByteOffset = 0;
652 Ccb->DirectorySearchPattern.Length = 0;
653 Ccb->DirectorySearchPattern.MaximumLength = 0;
654 Ccb->DirectorySearchPattern.Buffer = 0;
670 if (
Ccb->DirectorySearchPattern.Buffer !=
NULL) {
702 #define MCB_NUM_SHIFT 0x04 710 "RfsdAllocateMcb: CurrDepth=%xh/%xh/%xh FileName=%S\n",
718 while ((
List != &(
Vcb->McbList)) && (Extra > 0)) {
725 Mcb->ShortName.Buffer));
766 Mcb->ShortName.MaximumLength =
Mcb->ShortName.Length + 2;
770 if (!
Mcb->ShortName.Buffer)
795 if (
Mcb->ShortName.Buffer)
834 if (
Mcb->ShortName.Buffer)
905 while(TmpMcb &&
Count < 256) {
962 while ((!bFind) && (
List != &(
Vcb->McbList))) {
1001 TmpMcb = TmpMcb->
Next;
1038 while (TmpMcb->
Next) {
1039 TmpMcb = TmpMcb->
Next;
1073 while (TmpMcb && TmpMcb->
Next != RfsdMcb)
1074 TmpMcb = TmpMcb->
Next;
1083 }
else if (RfsdMcb->
Child) {
1101 if (McbTree->
Child) {
1105 if (McbTree->
Next) {
1110 Current = McbTree->
Next;
1114 Next = Current->
Next;
1116 if (Current->
Child) {
1204 return (!bModified);
1214 for (
i = 0;
i <
Vcb->NumOfGroups;
i++) {
1220 if (
i ==
Vcb->NumOfGroups - 1) {
1228 for (
j = 0;
j < InodeBlocks;
j++ )
1235 #endif // !RFSD_READ_ONLY 1259 USHORT VolumeLabelLength;
1268 char s_volume_name[16] =
"ReiserFS\0";
1282 Vcb->McbList.Flink, &(
Vcb->McbList.Flink)));
1319 VcbResourceInitialized =
TRUE;
1323 Vcb->RealDevice =
Vpb->RealDevice;
1324 Vpb->DeviceObject = VolumeDevice;
1334 LabelName.
Buffer =
Vcb->Vpb->VolumeLabel;
1338 VolumeLabelLength = 16;
1340 while( (VolumeLabelLength > 0) &&
1341 ((s_volume_name[VolumeLabelLength-1] ==
'\0') ||
1342 (s_volume_name[VolumeLabelLength-1] ==
' ')) ) {
1343 VolumeLabelLength--;
1346 OemName.Buffer = s_volume_name;
1348 OemName.Length = VolumeLabelLength;
1359 Vpb->VolumeLabelLength = LabelName.
Length;
1363 Vpb->SerialNumber = ((
ULONG*)RfsdSb->s_uuid)[0] + ((
ULONG*)RfsdSb->s_uuid)[1] +
1364 ((
ULONG*)RfsdSb->s_uuid)[2] + ((
ULONG*)RfsdSb->s_uuid)[3];
1369 if (
Vcb->StreamObj) {
1371 Vcb->StreamObj->SectionObjectPointer = &(
Vcb->SectionObject);
1372 Vcb->StreamObj->Vpb =
Vcb->Vpb;
1373 Vcb->StreamObj->ReadAccess =
TRUE;
1376 Vcb->StreamObj->WriteAccess =
FALSE;
1377 Vcb->StreamObj->DeleteAccess =
FALSE;
1381 Vcb->StreamObj->WriteAccess =
TRUE;
1382 Vcb->StreamObj->DeleteAccess =
TRUE;
1385 Vcb->StreamObj->FsContext2 =
NULL;
1386 Vcb->StreamObj->Vpb =
Vcb->Vpb;
1399 NotifySyncInitialized =
TRUE;
1401 Vcb->DeviceObject = VolumeDevice;
1405 Vcb->OpenFileHandleCount = 0;
1407 Vcb->ReferenceCount = 0;
1409 Vcb->SuperBlock = RfsdSb;
1414 Vcb->Header.Resource = &(
Vcb->MainResource);
1415 Vcb->Header.PagingIoResource = &(
Vcb->PagingIoResource);
1417 Vcb->Vpb->SerialNumber =
'MATT';
1420 Vcb->DiskGeometry.Cylinders.QuadPart *
1421 Vcb->DiskGeometry.TracksPerCylinder *
1422 Vcb->DiskGeometry.SectorsPerTrack *
1423 Vcb->DiskGeometry.BytesPerSector;
1432 &
Vcb->PartitionInformation,
1435 PartSize =
Vcb->PartitionInformation.PartitionLength.QuadPart;
1438 Vcb->PartitionInformation.StartingOffset.QuadPart = 0;
1440 Vcb->PartitionInformation.PartitionLength.QuadPart =
1443 PartSize = DiskSize;
1448 IoctlSize =
sizeof(
ULONG);
1461 Vcb->ChangeCount = ChangeCount;
1463 Vcb->Header.AllocationSize.QuadPart =
1464 Vcb->Header.FileSize.QuadPart = PartSize;
1466 Vcb->Header.ValidDataLength.QuadPart =
1479 Vcb->Header.AllocationSize.QuadPart;
1489 #if DISABLED // IN FFFS TOO 1513 if (!
Vcb->McbTree) {
1520 Vcb->McbTree->Key.k_offset = 0;
1543 Vcb->dwMeta[
i] = dwMeta[
i];
1554 if (NotifySyncInitialized) {
1558 if (
Vcb->GroupDesc) {
1564 if (
Vcb->SuperBlock) {
1569 if (VcbResourceInitialized) {
1592 if (
Vcb->StreamObj) {
1600 if (
Vcb->StreamObj->PrivateCacheMap)
1629 if (
Vcb->GroupDesc) {
1635 if (
Vcb->SuperBlock) {
1666 &UninitializeCompleteEvent );
struct _RFSD_CCB * PRFSD_CCB
#define RFSD_ROOT_OBJECT_ID
#define KeGetCurrentIrql()
NTSTATUS RfsdDiskIoControl(IN PDEVICE_OBJECT DeviceOjbect, IN ULONG IoctlCode, IN PVOID InputBuffer, IN ULONG InputBufferSize, IN OUT PVOID OutputBuffer, IN OUT PULONG OutputBufferSize)
#define ExGetCurrentResourceThread()
VOID RfsdInsertVcb(PRFSD_VCB Vcb)
PBCB Bcb[RFSD_REPINNED_BCBS_ARRAY_SIZE]
#define RfsdIsReadOnly(m)
NTSTATUS RfsdUnicodeToOEM(IN OUT POEM_STRING Oem, IN PUNICODE_STRING Unicode)
BOOLEAN NTAPI CcPurgeCacheSection(IN PSECTION_OBJECT_POINTERS SectionObjectPointer, IN OPTIONAL PLARGE_INTEGER FileOffset, IN ULONG Length, IN BOOLEAN UninitializeCacheMaps)
__drv_mustHoldCriticalRegion PRFSD_FCB RfsdCreateFcbFromMcb(PRFSD_VCB Vcb, PRFSD_MCB Mcb)
#define RFSD_CHECKING_BITMAP
__drv_mustHoldCriticalRegion PRFSD_FCB RfsdAllocateFcb(IN PRFSD_VCB Vcb, IN PRFSD_MCB RfsdMcb, IN PRFSD_INODE Inode)
_In_ ULONG _In_ ULONG _In_ ULONG Length
__drv_mustHoldCriticalRegion VOID RfsdFreeMcbTree(PRFSD_MCB McbTree)
IN PVCB IN VBO IN ULONG OUT PBCB * Bcb
#define IRP_MJ_FLUSH_BUFFERS
#define __drv_mustHoldCriticalRegion
__drv_mustHoldCriticalRegion VOID RfsdFreeVcb(IN PRFSD_VCB Vcb)
VOID NTAPI CcFlushCache(IN PSECTION_OBJECT_POINTERS SectionObjectPointer, IN OPTIONAL PLARGE_INTEGER FileOffset, IN ULONG Length, OUT OPTIONAL PIO_STATUS_BLOCK IoStatus)
FSRTL_ADVANCED_FCB_HEADER Header
_Must_inspect_result_ __drv_aliasesMem PDEVICE_OBJECT _In_ PDEVICE_OBJECT TargetDevice
VOID NTAPI FsRtlInitializeFileLock(IN PFILE_LOCK FileLock, IN PCOMPLETE_LOCK_IRP_ROUTINE CompleteLockIrpRoutine OPTIONAL, IN PUNLOCK_ROUTINE UnlockRoutine OPTIONAL)
IN BOOLEAN OUT PSTR Buffer
#define CEILING_ALIGNED(T, A, B)
VOID NTAPI CcSetDirtyPinnedData(IN PVOID BcbVoid, IN OPTIONAL PLARGE_INTEGER Lsn)
#define IRP_CONTEXT_FLAG_WRITE_THROUGH
VOID NTAPI FsRtlUninitializeFileLock(IN PFILE_LOCK FileLock)
NTSYSAPI UINT WINAPI RtlOemStringToUnicodeSize(const STRING *)
VOID RfsdRepinBcb(IN PRFSD_IRP_CONTEXT IrpContext, IN PBCB Bcb)
NPAGED_LOOKASIDE_LIST RfsdIrpContextLookasideList
__drv_mustHoldCriticalRegion NTSTATUS RfsdInitializeVcb(IN PRFSD_IRP_CONTEXT IrpContext, IN PRFSD_VCB Vcb, IN PRFSD_SUPER_BLOCK RfsdSb, IN PDEVICE_OBJECT TargetDevice, IN PDEVICE_OBJECT VolumeDevice, IN PVPB Vpb)
BOOLEAN RfsdAddMcbEntry(IN PRFSD_VCB Vcb, IN LONGLONG Lba, IN LONGLONG Length)
NTSYSAPI void WINAPI RtlInitializeBitMap(PRTL_BITMAP, PULONG, ULONG)
#define IOCTL_DISK_CHECK_VERIFY
VOID NTAPI CcUnpinData(IN PVOID Bcb)
#define RFSD_FIRST_DATA_BLOCK
NTSTATUS ExInitializeResourceLite(PULONG res)
NTSTATUS NTAPI ExDeleteResourceLite(IN PERESOURCE Resource)
static HANDLE ULONG_PTR dwData
#define RFSD_IS_ROOT_KEY(x)
#define IRP_CONTEXT_FLAG_FROM_POOL
#define RtlCheckBit(BMH, BP)
PAGED_LOOKASIDE_LIST RfsdMcbLookasideList
ACPI_PHYSICAL_ADDRESS ACPI_SIZE BOOLEAN Warn BOOLEAN Physical UINT32 ACPI_TABLE_HEADER *OutTableHeader ACPI_TABLE_HEADER **OutTable ACPI_HANDLE UINT32 ACPI_WALK_CALLBACK ACPI_WALK_CALLBACK void void **ReturnValue UINT32 ACPI_BUFFER *RetPathPtr ACPI_OBJECT_HANDLER void *Data ACPI_OBJECT_HANDLER void **Data ACPI_STRING ACPI_OBJECT_LIST ACPI_BUFFER *ReturnObjectBuffer ACPI_DEVICE_INFO **ReturnBuffer ACPI_HANDLE Parent
static CC_FILE_SIZES FileSizes
BOOLEAN NTAPI IoIsOperationSynchronous(IN PIRP Irp)
#define FO_NO_INTERMEDIATE_BUFFERING
#define InsertTailList(ListHead, Entry)
struct _PARTITION_INFORMATION PARTITION_INFORMATION
NTSTATUS NTAPI KeWaitForSingleObject(IN PVOID Object, IN KWAIT_REASON WaitReason, IN KPROCESSOR_MODE WaitMode, IN BOOLEAN Alertable, IN PLARGE_INTEGER Timeout OPTIONAL)
VOID RfsdSyncUninitializeCacheMap(IN PFILE_OBJECT FileObject)
ULONG NTAPI FsRtlNumberOfRunsInLargeMcb(IN PLARGE_MCB Mcb)
PFILE_OBJECT NTAPI CcGetFileObjectFromBcb(PVOID Bcb)
static int Link(const char **args)
#define VCB_REMOVABLE_MEDIA
FORCEINLINE BOOLEAN RemoveEntryList(_In_ PLIST_ENTRY Entry)
BOOLEAN NTAPI ExAcquireResourceExclusiveLite(IN PERESOURCE Resource, IN BOOLEAN Wait)
BOOLEAN NTAPI FsRtlGetNextLargeMcbEntry(IN PLARGE_MCB Mcb, IN ULONG RunIndex, OUT PLONGLONG Vbn, OUT PLONGLONG Lbn, OUT PLONGLONG SectorCount)
__drv_mustHoldCriticalRegion VOID RfsdFreeMcb(IN PRFSD_MCB Mcb)
_In_ PDEVICE_OBJECT DeviceObject
#define RFSD_KEY_TYPE_v1_STAT_DATA
struct _RFSD_FCB * PRFSD_FCB
NTFSIDENTIFIER Identifier
#define RFSD_ROOT_PARENT_ID
VOID RfsdRemoveVcb(PRFSD_VCB Vcb)
#define IO_DISK_INCREMENT
RFSD_KEY_COMPARISON CompareShortKeys(IN PRFSD_KEY_IN_MEMORY a, IN PRFSD_KEY_IN_MEMORY b)
struct _RFSD_FCB RFSD_FCB
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFDEVICE Child
__drv_mustHoldCriticalRegion VOID RfsdFreeIrpContext(IN PRFSD_IRP_CONTEXT IrpContext)
#define FILE_REMOVABLE_MEDIA
VOID NTAPI FsRtlInitializeLargeMcb(IN PLARGE_MCB Mcb, IN POOL_TYPE PoolType)
RFSD_IDENTIFIER_TYPE Type
__drv_mustHoldCriticalRegion PRFSD_IRP_CONTEXT RfsdAllocateIrpContext(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
PRFSD_MCB RfsdSearchMcb(PRFSD_VCB Vcb, PRFSD_MCB Parent, PUNICODE_STRING FileName)
VOID RfsdAddMcbNode(PRFSD_VCB Vcb, PRFSD_MCB Parent, PRFSD_MCB Child)
NPAGED_LOOKASIDE_LIST RfsdCcbLookasideList
struct _RFSD_VCB RFSD_VCB
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
PFILE_OBJECT NTAPI IoCreateStreamFileObject(IN PFILE_OBJECT FileObject, IN PDEVICE_OBJECT DeviceObject)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
#define FILE_ATTRIBUTE_DIRECTORY
NTSTATUS RfsdCompleteIrpContext(IN PRFSD_IRP_CONTEXT IrpContext, IN NTSTATUS Status)
VOID NTAPI CcUnpinRepinnedBcb(IN PVOID Bcb, IN BOOLEAN WriteThrough, OUT PIO_STATUS_BLOCK IoStatus)
#define NT_SUCCESS(StatCode)
VOID NTAPI CcInitializeCacheMap(IN PFILE_OBJECT FileObject, IN PCC_FILE_SIZES FileSizes, IN BOOLEAN PinAccess, IN PCACHE_MANAGER_CALLBACKS Callbacks, IN PVOID LazyWriteContext)
#define IRP_MJ_FILE_SYSTEM_CONTROL
BOOLEAN RfsdDeleteMcbNode(PRFSD_VCB Vcb, PRFSD_MCB McbTree, PRFSD_MCB RfsdMcb)
#define ObDereferenceObject
#define FILE_ATTRIBUTE_READONLY
BOOLEAN RfsdLoadGroup(IN PRFSD_VCB Vcb)
HRESULT Next([in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] STATPROPSETSTG *rgelt, [out] ULONG *pceltFetched)
PIRP NTAPI IoGetTopLevelIrp(VOID)
RFSD_IDENTIFIER Identifier
ULONG RfsdUnicodeToOEMSize(IN PUNICODE_STRING Unicode)
PDEVICE_OBJECT DeviceObject
BOOLEAN NTAPI CcPinRead(IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN ULONG Flags, OUT PVOID *Bcb, OUT PVOID *Buffer)
#define STATUS_UNSUCCESSFUL
CACHE_MANAGER_CALLBACKS CacheManagerNoOpCallbacks
#define ExAllocatePoolWithTag(hernya, size, tag)
__drv_mustHoldCriticalRegion PRFSD_CCB RfsdAllocateCcb(VOID)
__drv_mustHoldCriticalRegion VOID RfsdFreeCcb(IN PRFSD_CCB Ccb)
#define FILE_ATTRIBUTE_NORMAL
#define IOCTL_DISK_GET_PARTITION_INFO
ULONG RtlCompareUnicodeString(PUNICODE_STRING s1, PUNICODE_STRING s2, BOOLEAN UpCase)
_Must_inspect_result_ _In_ WDFCMRESLIST List
_Inout_ PFILE_OBJECT _In_ TYPE_OF_OPEN PFCB _In_opt_ PCCB Ccb
LARGE_INTEGER ValidDataLength
__drv_mustHoldCriticalRegion VOID RfsdFreeFcb(IN PRFSD_FCB Fcb)
struct _RFSD_IRP_CONTEXT * PRFSD_IRP_CONTEXT
ClearFlag(Dirent->Flags, DIRENT_FLAG_NOT_PERSISTENT)
BOOLEAN RfsdCheckBitmapConsistency(PRFSD_IRP_CONTEXT IrpContext, PRFSD_VCB Vcb)
BOOLEAN RfsdLoadInode(IN PRFSD_VCB Vcb, IN PRFSD_KEY_IN_MEMORY pKey, IN OUT PRFSD_INODE Inode)
struct _RFSD_MCB * PRFSD_MCB
BOOLEAN ExceptionInProgress
_In_ ULONG _In_ ULONG Offset
__drv_aliasesMem FORCEINLINE PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(_In_ PIRP Irp)
VOID NTAPI IoDeleteDevice(IN PDEVICE_OBJECT DeviceObject)
BOOLEAN RfsdGetFullFileName(PRFSD_MCB Mcb, PUNICODE_STRING FileName)
#define KeInitializeEvent(pEvt, foo, foo2)
LARGE_INTEGER AllocationSize
union _FCB::@714 LongName
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define IRP_CONTEXT_FLAG_FLOPPY
VOID RfsdUnpinRepinnedBcbs(IN PRFSD_IRP_CONTEXT IrpContext)
BOOLEAN NTAPI CcUninitializeCacheMap(IN PFILE_OBJECT FileObject, IN OPTIONAL PLARGE_INTEGER TruncateSize, IN OPTIONAL PCACHE_UNINITIALIZE_EVENT UninitializeEvent)
#define InitializeListHead(ListHead)
IN PVCB IN ULONG IN OUT PULONG IN BOOLEAN OUT PLARGE_MCB Mcb
NTSYSAPI void WINAPI RtlSetBits(PRTL_BITMAP, ULONG, ULONG)
VOID NTAPI FsRtlUninitializeLargeMcb(IN PLARGE_MCB Mcb)
NTSTATUS RfsdOEMToUnicode(IN OUT PUNICODE_STRING Oem, IN POEM_STRING Unicode)
#define IRP_CONTEXT_FLAG_REQUEUED
NPAGED_LOOKASIDE_LIST RfsdFcbLookasideList
VOID NTAPI FsRtlNotifyInitializeSync(IN PNOTIFY_SYNC *NotifySync)
__drv_mustHoldCriticalRegion PRFSD_MCB RfsdAllocateMcb(PRFSD_VCB Vcb, PUNICODE_STRING FileName, ULONG FileAttr)
struct _RFSD_REPINNED_BCBS * Next
__in UCHAR __in POWER_STATE __in_opt PVOID __in PIO_STATUS_BLOCK IoStatus
#define IRP_MJ_SET_INFORMATION
ERESOURCE PagingIoResource
PDEVICE_OBJECT RealDevice
#define RtlZeroMemory(Destination, Length)
#define RtlCopyMemory(Destination, Source, Length)
VOID NTAPI CcRepinBcb(IN PVOID Bcb)
VOID NTAPI ExReleaseResourceForThreadLite(IN PERESOURCE Resource, IN ERESOURCE_THREAD Thread)
VOID NTAPI IoSetHardErrorOrVerifyDevice(IN PIRP Irp, IN PDEVICE_OBJECT DeviceObject)
struct _RFSD_CCB RFSD_CCB
struct _RFSD_IRP_CONTEXT RFSD_IRP_CONTEXT
VOID NTAPI FsRtlNotifyUninitializeSync(IN PNOTIFY_SYNC *NotifySync)
IN PDCB IN POEM_STRING OemName
struct _NAMED_PIPE_CREATE_PARAMETERS * Parameters
#define FILE_FLOPPY_DISKETTE
struct _RFSD_MCB RFSD_MCB
BOOLEAN RfsdCheckSetBlock(PRFSD_IRP_CONTEXT IrpContext, PRFSD_VCB Vcb, ULONG Block)
VOID RfsdRefreshMcb(PRFSD_VCB Vcb, PRFSD_MCB Mcb)
PRFSD_MCB RfsdSearchMcbTree(PRFSD_VCB Vcb, PRFSD_MCB RfsdMcb, PRFSD_KEY_IN_MEMORY Key)
struct stat_data RFSD_INODE
#define RFSD_REPINNED_BCBS_ARRAY_SIZE
IN OUT PVCB IN PDEVICE_OBJECT IN PVPB Vpb
#define RfsdNormalizeAndRaiseStatus(IRPCONTEXT, STATUS)
#define RfsdCompleteRequest(Irp, bPrint, PriorityBoost)
#define IRP_MJ_DEVICE_CONTROL
PCONFIGURATION_COMPONENT_DATA RootNode
#define STATUS_DEVICE_NOT_READY