ReactOS  0.4.15-dev-5112-g22d8c0f
floppy.h File Reference
#include <ntdddisk.h>
Include dependency graph for floppy.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _DRIVE_INFO
 
struct  _CONTROLLER_INFO
 

Macros

#define MAX_DEVICE_NAME   255
 
#define MAX_ARC_PATH_LEN   255
 
#define MAX_DRIVES_PER_CONTROLLER   4
 
#define MAX_CONTROLLERS   4
 
#define GEOMETRY_144_MEDIATYPE   F3_1Pt44_512
 
#define GEOMETRY_144_CYLINDERS   80
 
#define GEOMETRY_144_TRACKSPERCYLINDER   2
 
#define GEOMETRY_144_SECTORSPERTRACK   18
 
#define GEOMETRY_144_BYTESPERSECTOR   512
 

Typedefs

typedef struct _DRIVE_INFO DRIVE_INFO
 
typedef struct _DRIVE_INFOPDRIVE_INFO
 
typedef struct _CONTROLLER_INFO CONTROLLER_INFO
 
typedef struct _CONTROLLER_INFOPCONTROLLER_INFO
 

Functions

int _cdecl swprintf (const WCHAR *,...)
 
NTSTATUS NTAPI DriverEntry (PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath)
 
VOID NTAPI SignalMediaChanged (PDEVICE_OBJECT DeviceObject, PIRP Irp)
 
NTSTATUS NTAPI WaitForControllerInterrupt (PCONTROLLER_INFO ControllerInfo, PLARGE_INTEGER Timeout)
 
NTSTATUS NTAPI ResetChangeFlag (PDRIVE_INFO DriveInfo)
 
VOID NTAPI StartMotor (PDRIVE_INFO DriveInfo)
 
VOID NTAPI StopMotor (PCONTROLLER_INFO ControllerInfo)
 

Macro Definition Documentation

◆ GEOMETRY_144_BYTESPERSECTOR

#define GEOMETRY_144_BYTESPERSECTOR   512

Definition at line 127 of file floppy.h.

◆ GEOMETRY_144_CYLINDERS

#define GEOMETRY_144_CYLINDERS   80

Definition at line 124 of file floppy.h.

◆ GEOMETRY_144_MEDIATYPE

#define GEOMETRY_144_MEDIATYPE   F3_1Pt44_512

Definition at line 123 of file floppy.h.

◆ GEOMETRY_144_SECTORSPERTRACK

#define GEOMETRY_144_SECTORSPERTRACK   18

Definition at line 126 of file floppy.h.

◆ GEOMETRY_144_TRACKSPERCYLINDER

#define GEOMETRY_144_TRACKSPERCYLINDER   2

Definition at line 125 of file floppy.h.

◆ MAX_ARC_PATH_LEN

#define MAX_ARC_PATH_LEN   255

Definition at line 30 of file floppy.h.

◆ MAX_CONTROLLERS

#define MAX_CONTROLLERS   4

Definition at line 32 of file floppy.h.

◆ MAX_DEVICE_NAME

#define MAX_DEVICE_NAME   255

Definition at line 29 of file floppy.h.

◆ MAX_DRIVES_PER_CONTROLLER

#define MAX_DRIVES_PER_CONTROLLER   4

Definition at line 31 of file floppy.h.

Typedef Documentation

◆ CONTROLLER_INFO

◆ DRIVE_INFO

◆ PCONTROLLER_INFO

◆ PDRIVE_INFO

Function Documentation

◆ DriverEntry()

NTSTATUS NTAPI DriverEntry ( PDRIVER_OBJECT  DriverObject,
PUNICODE_STRING  RegistryPath 
)

Definition at line 16 of file battc.c.

18 {
19  DPRINT("Battery class driver initialized\n");
20 
21  return STATUS_SUCCESS;
22 }
#define STATUS_SUCCESS
Definition: shellext.h:65
#define DPRINT
Definition: sndvol32.h:71

Referenced by DriverEntry().

◆ ResetChangeFlag()

NTSTATUS NTAPI ResetChangeFlag ( PDRIVE_INFO  DriveInfo)

Definition at line 291 of file floppy.c.

306 {
307  BOOLEAN DiskChanged;
308 
309  PAGED_CODE();
310  ASSERT(DriveInfo);
311 
312  TRACE_(FLOPPY, "ResetChangeFlag called\n");
313 
314  /* Try to recalibrate. We don't care if it works. */
315  Recalibrate(DriveInfo);
316 
317  /* clear spurious interrupts in prep for seeks */
318  KeClearEvent(&DriveInfo->ControllerInfo->SynchEvent);
319 
320  /* must re-start the drive because Recalibrate() stops it */
321  StartMotor(DriveInfo);
322 
323  /* Seek to 1 */
324  if(HwSeek(DriveInfo, 1) != STATUS_SUCCESS)
325  {
326  WARN_(FLOPPY, "ResetChangeFlag(): HwSeek failed; returning STATUS_IO_DEVICE_ERROR\n");
327  StopMotor(DriveInfo->ControllerInfo);
328  return STATUS_IO_DEVICE_ERROR;
329  }
330 
332 
334  {
335  WARN_(FLOPPY, "ResetChangeFlag(): HwSenseInterruptStatus failed; bailing out\n");
336  StopMotor(DriveInfo->ControllerInfo);
337  return STATUS_IO_DEVICE_ERROR;
338  }
339 
340  /* Seek back to 0 */
341  if(HwSeek(DriveInfo, 0) != STATUS_SUCCESS)
342  {
343  WARN_(FLOPPY, "ResetChangeFlag(): HwSeek failed; returning STATUS_IO_DEVICE_ERROR\n");
344  StopMotor(DriveInfo->ControllerInfo);
345  return STATUS_IO_DEVICE_ERROR;
346  }
347 
349 
351  {
352  WARN_(FLOPPY, "ResetChangeFlag(): HwSenseInterruptStatus #2 failed; bailing\n");
353  StopMotor(DriveInfo->ControllerInfo);
354  return STATUS_IO_DEVICE_ERROR;
355  }
356 
357  /* Check the change bit */
358  if(HwDiskChanged(DriveInfo, &DiskChanged) != STATUS_SUCCESS)
359  {
360  WARN_(FLOPPY, "ResetChangeFlag(): HwDiskChanged failed; returning STATUS_IO_DEVICE_ERROR\n");
361  StopMotor(DriveInfo->ControllerInfo);
362  return STATUS_IO_DEVICE_ERROR;
363  }
364 
365  StopMotor(DriveInfo->ControllerInfo);
366 
367  /* if the change flag is still set, there's probably no media in the drive. */
368  if(DiskChanged)
370 
371  /* else we're done! */
372  return STATUS_SUCCESS;
373 }
NTSTATUS NTAPI WaitForControllerInterrupt(PCONTROLLER_INFO ControllerInfo, PLARGE_INTEGER Timeout)
Definition: floppy.c:163
#define STATUS_NO_MEDIA_IN_DEVICE
Definition: udferr_usr.h:141
VOID NTAPI StopMotor(PCONTROLLER_INFO ControllerInfo)
Definition: floppy.c:135
struct _CONTROLLER_INFO * ControllerInfo
Definition: fdc.h:23
#define STATUS_IO_DEVICE_ERROR
Definition: udferr_usr.h:179
unsigned char BOOLEAN
#define TRACE_(x)
Definition: compat.h:76
#define ASSERT(a)
Definition: mode.c:44
NTSTATUS NTAPI HwSenseInterruptStatus(PCONTROLLER_INFO ControllerInfo)
Definition: hardware.c:539
NTSTATUS NTAPI HwDiskChanged(PDRIVE_INFO DriveInfo, PBOOLEAN DiskChanged)
Definition: hardware.c:785
VOID NTAPI StartMotor(PDRIVE_INFO DriveInfo)
Definition: floppy.c:96
NTSTATUS NTAPI HwSeek(PDRIVE_INFO DriveInfo, UCHAR Cylinder)
Definition: hardware.c:659
#define NULL
Definition: types.h:112
static NTSTATUS NTAPI Recalibrate(PDRIVE_INFO DriveInfo)
Definition: floppy.c:221
#define STATUS_SUCCESS
Definition: shellext.h:65
VOID NTAPI KeClearEvent(IN PKEVENT Event)
Definition: eventobj.c:22
#define WARN_(ch,...)
Definition: debug.h:157
#define PAGED_CODE()

Referenced by DeviceIoctlPassive(), and ReadWritePassive().

◆ SignalMediaChanged()

VOID NTAPI SignalMediaChanged ( PDEVICE_OBJECT  DeviceObject,
PIRP  Irp 
)

Definition at line 1090 of file floppy.c.

1101 {
1102  PDRIVE_INFO DriveInfo = DeviceObject->DeviceExtension;
1103 
1104  TRACE_(FLOPPY, "SignalMediaChanged called\n");
1105 
1106  DriveInfo->DiskChangeCount++;
1107 
1108  /* If volume is not mounted, do NOT set verify and return STATUS_IO_DEVICE_ERROR */
1109  if(!(DeviceObject->Vpb->Flags & VPB_MOUNTED))
1110  {
1111  Irp->IoStatus.Status = STATUS_IO_DEVICE_ERROR;
1112  Irp->IoStatus.Information = 0;
1113  return;
1114  }
1115 
1116  /* Notify the filesystem that it will need to verify the volume */
1117  DeviceObject->Flags |= DO_VERIFY_VOLUME;
1118  Irp->IoStatus.Status = STATUS_VERIFY_REQUIRED;
1119  Irp->IoStatus.Information = 0;
1120 
1121  /*
1122  * If this is a user-based, threaded request, let the IO manager know to pop up a box asking
1123  * the user to supply the correct media, but only if the error (which we just picked out above)
1124  * is deemed by the IO manager to be "user induced". The reason we don't just unconditionally
1125  * call IoSetHardError... is because MS might change the definition of "user induced" some day,
1126  * and we don't want to have to remember to re-code this.
1127  */
1128  if(Irp->Tail.Overlay.Thread && IoIsErrorUserInduced(Irp->IoStatus.Status))
1130 }
ULONG DiskChangeCount
Definition: floppy.h:53
#define IoIsErrorUserInduced(Status)
Definition: iofuncs.h:2817
#define DO_VERIFY_VOLUME
Definition: env_spec_w32.h:393
#define STATUS_VERIFY_REQUIRED
Definition: udferr_usr.h:130
#define STATUS_IO_DEVICE_ERROR
Definition: udferr_usr.h:179
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
_In_ PIRP Irp
Definition: csq.h:116
#define TRACE_(x)
Definition: compat.h:76
VOID NTAPI IoSetHardErrorOrVerifyDevice(IN PIRP Irp, IN PDEVICE_OBJECT DeviceObject)
Definition: util.c:316
#define VPB_MOUNTED
Definition: iotypes.h:1807

Referenced by DeviceIoctlPassive(), and ReadWritePassive().

◆ StartMotor()

VOID NTAPI StartMotor ( PDRIVE_INFO  DriveInfo)

Definition at line 96 of file floppy.c.

111 {
112  PAGED_CODE();
113  ASSERT(DriveInfo);
114 
115  TRACE_(FLOPPY, "StartMotor called\n");
116 
117  if(DriveInfo->ControllerInfo->StopDpcQueued && !KeCancelTimer(&DriveInfo->ControllerInfo->MotorTimer))
118  {
119  /* Motor turner-offer is already running; wait for it to finish */
120  INFO_(FLOPPY, "StartMotor: motor turner-offer is already running; waiting for it\n");
121  KeWaitForSingleObject(&DriveInfo->ControllerInfo->MotorStoppedEvent, Executive, KernelMode, FALSE, NULL);
122  INFO_(FLOPPY, "StartMotor: wait satisfied\n");
123  }
124 
125  DriveInfo->ControllerInfo->StopDpcQueued = FALSE;
126 
127  if(HwTurnOnMotor(DriveInfo) != STATUS_SUCCESS)
128  {
129  WARN_(FLOPPY, "StartMotor(): warning: HwTurnOnMotor failed\n");
130  }
131 }
#define INFO_(ch,...)
Definition: debug.h:159
NTSTATUS NTAPI KeWaitForSingleObject(IN PVOID Object, IN KWAIT_REASON WaitReason, IN KPROCESSOR_MODE WaitMode, IN BOOLEAN Alertable, IN PLARGE_INTEGER Timeout OPTIONAL)
Definition: wait.c:416
struct _CONTROLLER_INFO * ControllerInfo
Definition: fdc.h:23
#define FALSE
Definition: types.h:117
NTSTATUS NTAPI HwTurnOnMotor(PDRIVE_INFO DriveInfo)
Definition: hardware.c:245
#define TRACE_(x)
Definition: compat.h:76
BOOLEAN NTAPI KeCancelTimer(IN OUT PKTIMER Timer)
Definition: timerobj.c:206
#define ASSERT(a)
Definition: mode.c:44
#define NULL
Definition: types.h:112
#define STATUS_SUCCESS
Definition: shellext.h:65
#define WARN_(ch,...)
Definition: debug.h:157
#define PAGED_CODE()

Referenced by AddControllers(), DeviceIoctlPassive(), ReadWritePassive(), Recalibrate(), and ResetChangeFlag().

◆ StopMotor()

VOID NTAPI StopMotor ( PCONTROLLER_INFO  ControllerInfo)

Definition at line 135 of file floppy.c.

145 {
146  LARGE_INTEGER StopTime;
147 
148  ASSERT(ControllerInfo);
149 
150  TRACE_(FLOPPY, "StopMotor called\n");
151 
152  /* one relative second, in 100-ns units */
153  StopTime.QuadPart = 10000000;
154  StopTime.QuadPart *= -1;
155 
156  KeClearEvent(&ControllerInfo->MotorStoppedEvent);
157  KeSetTimer(&ControllerInfo->MotorTimer, StopTime, &ControllerInfo->MotorStopDpc);
158  ControllerInfo->StopDpcQueued = TRUE;
159 }
BOOLEAN NTAPI KeSetTimer(IN OUT PKTIMER Timer, IN LARGE_INTEGER DueTime, IN PKDPC Dpc OPTIONAL)
Definition: timerobj.c:281
#define TRUE
Definition: types.h:120
#define TRACE_(x)
Definition: compat.h:76
KDPC MotorStopDpc
Definition: floppy.h:85
#define ASSERT(a)
Definition: mode.c:44
KEVENT MotorStoppedEvent
Definition: floppy.h:83
BOOLEAN StopDpcQueued
Definition: floppy.h:86
VOID NTAPI KeClearEvent(IN PKEVENT Event)
Definition: eventobj.c:22
LONGLONG QuadPart
Definition: typedefs.h:114
KTIMER MotorTimer
Definition: floppy.h:84

Referenced by AddControllers(), DeviceIoctlPassive(), ReadWritePassive(), Recalibrate(), and ResetChangeFlag().

◆ swprintf()

int _cdecl swprintf ( const WCHAR ,
  ... 
)

Referenced by __wine_msi_call_dll_function(), CFSDropTarget::_GetUniqueFileName(), _main(), _ShowContextMenu(), _tryLoadProvider(), AboutDlgProc(), AcceptConnections(), ACTION_CostFinalize(), ACTION_ForceReboot(), ACTION_ProcessComponents(), ACTION_RegisterClassInfo(), add_source_to_list(), add_userkey(), AddCommas(), AddCommasW(), AddControllers(), AddDeviceInternal(), AddFontSizeToCombo3(), AddFSClassKeysToArray(), AddIpv4HostEntries(), AllSysInfo(), ApplyOrCancelChanges(), assembly_get_version(), AtapiRegCheckDevLunValue(), AtapiRegCheckDevValue(), AtlModuleRegisterWndClassInfoW(), BaseInitializeStaticServerData(), BmFatalErrorEx(), build_antecedent_query(), build_assembly_name(), build_assoc_query(), build_canonical_path(), build_default_format(), build_directshowfilters_tree(), build_directxfiles_tree(), build_file_mask(), build_manifest_path(), build_path(), build_policy_name(), build_policy_path(), build_proplist(), build_relpath(), build_response_header(), build_signature_table_name(), build_subkey_path(), build_systeminfo_tree(), Bus_PDO_QueryDeviceId(), Bus_PlugInDevice(), canonicalize_ipv6address(), capGetDriverDescriptionW(), CategoryMgr_FindClosestCategory(), CategoryMgr_RegisterCategory(), CategoryMgr_UnregisterCategory(), CBDAPinControl_fnConstructor(), CControlNode_fnConstructor(), CEnumMediaTypes_fnConstructor(), CEnumTuningSpaces_fnConstructor(), CGuidItemExtractIcon_CreateInstance(), ChangePortNumber(), CBDADeviceControl::CheckChanges(), Chkdsk(), CKsProxy_Constructor(), CTuneRequest::Clone(), CNetworkProvider_fnConstructor(), CommandDumpSector(), CommandPartInfo(), CBDADeviceControl::CommitChanges(), ConCfgWriteUserSettings(), ConMgrSerialPortConsumer(), COutputPin::Connect(), convert_bios_date(), convert_reg_value(), CopyHardwareProfile(), COutputPin::COutputPin(), COutputPin_SetState(), CPin_fnConstructor(), CPipe::CPipe(), create_diff_row_query(), create_qualifier_enum(), create_signature(), create_snapshot(), create_utc_string(), CreateBtn(), CreateClassDeviceObject(), CreateMultiSzString(), CInputPin::CreatePin(), COutputPin::CreatePin(), CInputPin::CreatePinHandle(), COutputPin::CreatePinHandle(), CKsProxy::CreatePins(), CreatePipe(), CreateServers(), CBDADeviceControl::CreateTopology(), CreateUserProfileExW(), CredDialogInit(), CRYPT_FormatHexString(), CRYPT_FormatUserNotice(), CryptCATAdminAcquireContext(), CScanningTunner_fnConstructor(), CsrCreateSessionObjectDirectory(), CTuneRequest_fnConstructor(), CTuningSpace_fnConstructor(), CTuningSpaceContainer_fnConstructor(), custom_action_server(), custom_start_server(), date_to_string(), Date_toISOString(), Date_toTimeString(), dateobj_to_date_string(), DeleteHardwareProfile(), DeletePwrScheme(), DeleteUserProfile(), CNetConnectionPropertyUi::Disconnect(), CNetConnection::Disconnect(), Display_DrawText(), Display_GetFullName(), Display_SetTypeFace(), DisplayCsFlags(), DisplayDevicePropertyText(), DisplayDevNodeFlags(), DisplayPowerStateMappings(), DisplayWin32Error(), dlg_invalid_portname(), dlg_port_already_exists(), dlgproc_lptconfig(), DllMain(), do_msidbCustomActionTypeDll(), DoRebootCommand(), DoTlistCommand(), DrawTree(), DumpDisk(), DumpFilterDescriptor(), DumpPartition(), EchoIncomingPackets(), EncodeVendorStr(), EngpUpdateGraphicsDeviceList(), ensure_useragent(), enum_gac_assemblies(), EnumerateNetworkComponent(), EnumTfLanguageProfiles_Clone(), export_dword_data(), export_hex_data(), export_hex_data_type(), export_key_name(), export_string_data(), export_value_name(), ExpSetCurrentUserUILanguage(), Ext2QueryVolumeParams(), failure_msgbox(), FdcFdoQueryBusRelations(), FdoCreateRawParallelPdo(), FdoRemoveAdapter(), FdoStartAdapter(), field_format_extension_hex_with_ascii(), field_format_version(), filedlg_collect_places_pidls(), filesys_GetTempName(), fill_cdromdrive(), fill_datetime_information(), fill_diskdrive(), fill_diskpartition(), fill_display_information_d3d(), fill_display_information_fallback(), fill_file_description(), fill_filter_data_information(), fill_language_information(), fill_logicaldisk(), fill_networkadapter(), fill_printer(), fill_process(), fill_processor(), fill_processor_information(), fill_videocontroller(), find_fallback_font(), FindProductName(), FitName(), FmtAcquireDrive_(), format_clsid(), format_hex_string(), format_int(), format_size(), FormatDateTime(), FormatEx(), FormatInteger(), FormatVerisignExtension(), FreeBT_AddDevice(), FTP_SendPort(), GenerateDeviceID(), CTuningSpace::get__NetworkType(), get_assembly_name_attribute(), get_body_text(), get_codeset(), get_compsysproduct_uuid(), get_file_version(), get_ip4_string(), get_ipsubnet(), CTuningSpaceContainer::get_Item(), get_lastbootuptime(), get_lcid_subkey(), get_localdatetime(), get_long_key(), get_mac_address(), get_object_text(), get_osbuildnumber(), get_osversion(), get_pnpdeviceid(), get_processor_caption(), get_processor_id(), get_processor_version(), get_property(), CBDASignalStatistics::get_SampleTime(), CBDASignalStatistics::get_SignalLocked(), CBDASignalStatistics::get_SignalPresent(), CBDASignalStatistics::get_SignalQuality(), CBDASignalStatistics::get_SignalStrength(), get_stream_name(), get_typelib_key(), get_unique_folder_name(), get_value_bstr(), get_versionstring(), get_volumeserialnumber(), CInputPin::GetAllocatorRequirements(), GetCachePath(), CBDADeviceControl::GetControlNode(), GetCurrentHwProfileW(), GetDefragTitle(), GetJobFilePath(), GetJobName(), CKsProxy::GetMiscFlags(), CBDADeviceControl::GetNodeDescriptors(), CBDADeviceControl::GetNodeInterfaces(), CBDADeviceControl::GetNodeTypes(), CBDAPinControl::GetPinID(), CKsProxy::GetPinName(), CBDAPinControl::GetPinType(), CBDADeviceControl::GetPinTypes(), GetProcessorInformation(), CFileVersionInfo::GetString(), CInputPin::GetSupportedSets(), COutputPin::GetSupportedSets(), CKsProxy::GetSupportedSets(), HalpDeleteMountLetter(), HalpGetChipHacks(), HalpNextDriveLetter(), HalpSetMountLetter(), handle_msi_break(), HCR_GetClassNameW(), HDA_PDOQueryId(), HidClassAddDevice(), HidClassPDO_HandleQueryHardwareId(), HidClassPDO_HandleQueryInstanceId(), Hotplug_Message(), HTTP_HttpQueryInfoW(), HTTP_HttpSendRequestW(), IAssemblyCacheImpl_InstallAssembly(), INetCfgComponentControl_fnApplyRegistryChanges(), CDrvDefExt::InitGeneralPage(), InitializeDefaultUserLocale(), InitializeMachineInformation(), InitializeRecycleBinDlg(), InitializeTcpipAdvancedDNSDlg(), InitKeyboardLayouts(), CFileDefExt::InitVersionPage(), InputProcessorProfiles_AddLanguageProfile(), InputProcessorProfiles_EnableLanguageProfile(), InputProcessorProfiles_EnableLanguageProfileByDefault(), InputProcessorProfiles_GetDefaultLanguageProfile(), InputProcessorProfiles_IsEnabledLanguageProfile(), InputProcessorProfiles_Register(), InputProcessorProfiles_SetDefaultLanguageProfile(), InputProcessorProfiles_Unregister(), insert_content_length_header(), InsertIpAddressToListView(), InstallDevice(), InstallerImpl_Version(), InstallParallelPort(), InstallSerialPort(), IntCreateNewRegistryPath(), InternetTimeFromSystemTimeW(), IntVideoPortAddDeviceMapLink(), IntVideoPortCreateAdapterDeviceObject(), IntVideoPortGetMonitorId(), BtrfsContextMenu::InvokeCommand(), IoCreateDevice(), IoCreateDriver(), IopBootLog(), IopComputeHarddiskDerangements(), IopEnumerateDetectedDevices(), COutputPin::IoProcessRoutine(), IopSaveBootLogToFile(), IopSetServiceEnumData(), IoReportDetectedDevice(), CKsProxy::IsFormatSupported(), ITERATE_InstallODBCDataSource(), ITERATE_InstallODBCDriver(), ITERATE_InstallODBCTranslator(), ITERATE_RemoveExistingProducts(), ITERATE_RemoveODBCDataSource(), ITS_IMonikerImpl_GetDisplayName(), CKsProxy::JoinFilterGraph(), jsdisp_delete_idx(), jsdisp_get_idx(), jsdisp_propput_idx(), json_quote(), KspCreatePDO(), KspDoReparseForIrp(), CKsInterfaceHandler::KsProcessMediaSamples(), COutputPin::KsProperty(), CNetConnectionPropertyUi::LANPropertiesUIDlg(), LANStatusUiAdvancedDlg(), LANStatusUiDetailsDlg(), CKsProxy::Load(), load_class(), load_progid(), LoadDNSSettings(), LoadFilterSettings(), COpenWithList::LoadInfo(), LresultFromObject(), main(), MainDialogProc(), modify_dword_dlgproc(), MonthCalPaint(), MSACM_ReorderDriversByPriority(), MSACM_WriteCurrentPriorities(), MSI_ApplyPatchW(), msi_build_createsql_columns(), msi_build_createsql_postlude(), msi_build_createsql_prelude(), msi_create_component_advertise_string(), msi_create_empty_local_file(), MSI_CreatePackage(), msi_export_stream(), msi_get_deferred_action(), msi_get_font_file_version(), MSI_ProcessMessage(), msi_publish_install_properties(), msi_set_last_used_source(), msi_set_property(), msi_set_record_type_string(), MSI_SetInstallLevel(), MSIREG_DeleteUserDataComponentKey(), MSIREG_DeleteUserDataPatchKey(), MSIREG_DeleteUserDataProductKey(), MSIREG_OpenFeaturesKey(), MSIREG_OpenInstallProps(), MSIREG_OpenProductKey(), MSIREG_OpenUserDataComponentKey(), MSIREG_OpenUserDataFeaturesKey(), MSIREG_OpenUserDataPatchKey(), MSIREG_OpenUserDataProductKey(), MSIREG_OpenUserDataProductPatchesKey(), MsiReinstallFeatureW(), MsiSourceListAddMediaDiskW(), MsiSourceListAddSourceExW(), MsiSourceListEnumMediaDisksW(), MsiSourceListEnumSourcesW(), my_open(), name_GetDisplayName(), NdrDllRegisterProxy(), next_LanguageProfile(), CInputPin::NotifyAllocator(), NtSetDefaultLocale(), Number_toString(), Object_toString(), ok_strings_(), OleRegGetMiscStatus(), OleRegGetUserType(), OnInitDialog(), OnProfileTypeInit(), OnResolutionChanged(), OnTimer(), DriveVolume::Open(), para_num_get_str(), parse_proxy_url(), PartitionCreateDevice(), PartitionHandleQueryId(), PartitionHandleRemove(), PartitionHandleStartDevice(), PciCreateCompatibleIDsString(), PciCreateDeviceIDString(), PciCreateDeviceLocationString(), PciCreateHardwareIDsString(), PciCreateInstanceIDString(), PciGetBiosConfig(), PciIdeXPdoQueryId(), PciInitializeArbiters(), PciPdoCreate(), PciQueryDeviceText(), PciSaveBiosConfig(), PdhMakeCounterPathW(), PdoHandleQueryInstanceId(), CScanningTunner::performDVBTTune(), Ping(), PNP_GetHwProfInfo(), PNP_HwProfFlags(), PortAddDevice(), POWRPROF_GetMachinePowerPolicy(), POWRPROF_GetUserPowerPolicy(), PrepareFoldersToScan(), PrintAllJobs(), PrintByteDataLine(), PrintError(), PrintErrorMessage(), printf_addr(), PrintJobDetails(), PrintWordDataLine(), process_host_port(), ProcessorSetFriendlyName(), ProcessSetupInf(), ProcessUnattendSection(), PropertyHandler_Synth(), PROPVAR_GUIDToWSTR(), PSStringFromPropertyKey(), CBDAFrequencyFilter::put_Bandwidth(), CBDAFrequencyFilter::put_Frequency(), CBDAFrequencyFilter::put_FrequencyMultiplier(), CBDALNBInfo::put_HighLowSwitchFrequency(), CBDADigitalDemodulator::put_InnerFECMethod(), CBDADigitalDemodulator::put_InnerFECRate(), CBDALNBInfo::put_LocalOscillatorFrequencyHighBand(), CBDALNBInfo::put_LocalOscillatorFrequencyLowBand(), CBDADigitalDemodulator::put_ModulationType(), CTuneRequest::put_ONID(), CBDADigitalDemodulator::put_OuterFECMethod(), CBDADigitalDemodulator::put_OuterFECRate(), CBDAFrequencyFilter::put_Polarity(), CBDAFrequencyFilter::put_Range(), CBDASignalStatistics::put_SampleTime(), CTuneRequest::put_SID(), CBDADigitalDemodulator::put_SpectralInversion(), CBDADigitalDemodulator::put_SymbolRate(), CTuneRequest::put_TSID(), query_from_path(), CScanningTunner::QueryInterface(), CEnumTuningSpaces::QueryInterface(), CTuneRequest::QueryInterface(), CTuningSpace::QueryInterface(), CTuningSpaceContainer::QueryInterface(), CControlNode::QueryInterface(), CPin::QueryInterface(), CBDAFrequencyFilter::QueryInterface(), CBDALNBInfo::QueryInterface(), CBDADigitalDemodulator::QueryInterface(), CNetworkProvider::QueryInterface(), COutputPin::QueryInterface(), CInputPin::QueryInterface(), CKsProxy::QueryInterface(), ReadProcessorPwrScheme(), ReadPwrScheme(), ReceiveIncomingPackets(), RecycleBin5_Constructor(), RecycleBinGeneric_RecycleBin_DeleteFile(), RecycleBinGeneric_RecycleBin_EmptyRecycleBin(), RefreshDevicesList(), reg_data_to_wchar(), reg_get_value(), register_codepages(), register_dll(), register_interfaces(), register_verb(), RegisterTypeLib(), RegistryInitAdapterKey(), RegistryInitLunKey(), RenameHardwareProfile(), resolve_keypath(), RtlConvertSidToUnicodeString(), RtlQueryAtomInAtomTable(), RtlStringFromGUID(), run_copy(), RunTestCases(), SampOpenAliasObject(), SampOpenGroupObject(), SampOpenUserObject(), SampSetupAddMemberToAlias(), SampSetupAddMemberToGroup(), SampSetupCreateAliasAccount(), SampSetupCreateGroupAccount(), SampSetupCreateUserAccount(), SamrCreateAliasInDomain(), SamrCreateGroupInDomain(), SamrCreateUser2InDomain(), SamrCreateUserInDomain(), SamrLookupIdsInDomain(), SamrOpenAlias(), SamrOpenGroup(), SamrOpenUser(), ScConnectControlPipe(), ScmCopyControlSet(), ScmDeleteControlSet(), ScsiPortInitialize(), search_dll_path(), search_res_tlb(), SerialAddDeviceInternal(), SerialPnpStartDevice(), SerialPortQuery(), set_content_length_header(), set_installer_properties(), set_msi_assembly_prop(), set_status_text(), SetActivePwrScheme(), CKsClockForwarder::SetClockState(), SetKeyboardLayout(), SetLastID(), CRegFolder::SetNameOf(), SetParallelState(), CKsProxy::SetPinState(), SetReportInfo(), CKsProxy::SetSyncSource(), Setup(), SH_FormatInteger(), SHCoCreateInstance(), SHCreateSessionKey(), SHELL32_GUIDToStringW(), SHELL_ArgifyW(), SHELL_execute(), ShowParallelStatus(), ShowPartitionSizeInputBox(), ShowSerialStatus(), ShowUsage(), ShutdownConnection(), SIC_LoadOverlayIcon(), SmpCreateDynamicEnvironmentVariables(), SpiCreatePortConfig(), START_TEST(), CBDADeviceControl::StartChanges(), StartChild(), StartD3DTest(), StartLinkProcessor(), StartRecDlgProc(), StartServer(), status_code_GetErrorCodeText(), status_code_GetFacilityCodeText(), CTuneRequest::STDMETHODIMP_(), CTuningSpace::STDMETHODIMP_(), stillimagew_RegisterLaunchApplication(), CKsClockForwarder::Stop(), StoreDriveSettings(), StringFromGUID2(), tapiGetLocationInfoW(), TcpipAdvancedDnsDlg(), TcpipAdvancedIpDlg(), test(), test_Data(), test_match_ex(), test_MatchApplications(), test_MatchApplicationsEx(), test_mode_generic(), test_swprintf(), test_TagRef(), TestVersionedClasses(), ThemePageDlgProc(), TLB_register_interface(), TransformView_create_table(), TransformView_insert_row(), TranslateMachineInformationXML(), TRASH_CanTrashFile(), Typelib_EnumResNameProc(), ui2ipv4(), ui2str(), update_counter(), UpdateAddress(), UpdateData(), UpdateDefragInfo(), UpdateDriverVersionInfoDetails(), UpdateLanStatusUiDlg(), USBCCG_InitIdsWithInterfaceDescriptor(), USBCCGP_InitFunctionDescriptor(), USBCCGP_PdoAppendInterfaceNumber(), USBCCGP_PdoHandleQueryId(), USBSTOR_PdoHandleQueryInstanceId(), UserLoadKbdFile(), validate_regex_document(), VARIANT_BstrFromReal(), VARIANT_FormatDate(), VARIANT_FormatNumber(), VerifyInteg(), wmain(), WritePortSettings(), WriteProcessorPwrScheme(), WritePwrPolicy(), WritePwrScheme(), WshShortcut_get_IconLocation(), WSPAddressToString(), xHalIoAssignDriveLetters(), and xmlwriter_WriteCharEntity().

◆ WaitForControllerInterrupt()

NTSTATUS NTAPI WaitForControllerInterrupt ( PCONTROLLER_INFO  ControllerInfo,
PLARGE_INTEGER  Timeout 
)

Definition at line 163 of file floppy.c.

176 {
178 
179  PAGED_CODE();
180  ASSERT(ControllerInfo);
181 
183  KeClearEvent(&ControllerInfo->SynchEvent);
184 
185  return Status;
186 }
LONG NTSTATUS
Definition: precomp.h:26
NTSTATUS NTAPI KeWaitForSingleObject(IN PVOID Object, IN KWAIT_REASON WaitReason, IN KPROCESSOR_MODE WaitMode, IN BOOLEAN Alertable, IN PLARGE_INTEGER Timeout OPTIONAL)
Definition: wait.c:416
#define FALSE
Definition: types.h:117
Status
Definition: gdiplustypes.h:24
#define ASSERT(a)
Definition: mode.c:44
static ULONG Timeout
Definition: ping.c:61
KEVENT SynchEvent
Definition: floppy.h:74
VOID NTAPI KeClearEvent(IN PKEVENT Event)
Definition: eventobj.c:22
#define PAGED_CODE()

Referenced by InitController(), ReadWritePassive(), Recalibrate(), ResetChangeFlag(), RWDetermineMediaType(), and RWSeekToCylinder().