242{
245
247
249 "DeviceEvtSelfManagedIoInit: WDFDEVICE %p is being started.\n",
251
252 deviceExtension = DeviceGetExtension(
Device);
253
254
256 {
257
258 (
VOID) DeviceRetrieveScsiAddress(deviceExtension, &deviceExtension->
ScsiAddress);
259 }
260
262 {
263 status = DeviceRetrieveDescriptorsAndTransferLength(deviceExtension);
264 }
265
267 {
268
269
270 status = DeviceInitAllocateBuffers(deviceExtension);
271 }
272
273
274
275
277 {
278
279
281
282 DeviceGetParameter(deviceExtension,
287 {
289 }
290 }
291
292
294 {
295 DeviceRetrieveHackFlagsFromRegistry(deviceExtension);
296
297 DeviceScanForSpecial(deviceExtension,
CdRomBadItems, DeviceHackFlagsScan);
298
299 DeviceScanSpecialDevices(deviceExtension);
300 }
301
302
303
305 {
306 status = DeviceInitializeHotplugInfo(deviceExtension);
307 }
308
310 {
311
312 status = DeviceCacheDeviceInquiryData(deviceExtension);
314 {
316 "Failed to cache the device's inquiry data, failng %!STATUS!\n",
318 ));
319 }
320 }
321
322
324 {
325 status = DeviceInitializeMediaChangeDetection(deviceExtension);
326 }
328 {
329 status = DeviceInitMmcContext(deviceExtension);
330 }
332 {
333 status = DeviceInitializeZPODD(deviceExtension);
334 }
336 {
337
338
339
341
342
344 {
348 }
349
350
352 }
353
354
356 {
358 }
359
360
362 {
364 {
366 }
367
369 {
370
372 }
373 }
374
375
377 {
378
380
382
383 DeviceEnableMainTimer(deviceExtension);
384
385 }
386
387#if (NTDDI_VERSION >= NTDDI_WIN8)
388
390 {
397
398 status = DeviceIsPortable(deviceExtension, &isPortable);
399
401 {
402 if (isPortable) {
404 }
405
407
409 &DEVPKEY_Storage_Portable,
410 0,
411 0,
414 &propPortable);
415 }
416
418 {
420
422 &DEVPKEY_Storage_Removable_Media,
423 0,
424 0,
427 &propRemovable);
428 }
429
431 {
436
438
440 &DEVPKEY_Storage_System_Critical,
441 0,
442 0,
445 &propCritical);
446 }
447
448 }
449#endif
450
452}
VOID DeviceSetMediaChangeStateEx(_In_ PCDROM_DEVICE_EXTENSION DeviceExtension, _In_ MEDIA_CHANGE_DETECTION_STATE NewState, _Inout_opt_ PMEDIA_CHANGE_DETECTION_STATE OldState)
#define SCSI_CDROM_OPC_TIMEOUT
#define SET_FLAG(Flags, Bit)
#define CLASS_PERF_RESTORE_MINIMUM
#define CLASSP_REG_PERF_RESTORE_VALUE_NAME
CDROM_SCAN_FOR_SPECIAL_INFO CdRomBadItems[]
#define CLASSP_REG_SUBKEY_NAME
#define DEVPROP_TYPE_BOOLEAN
#define DO_SYSTEM_BOOT_PARTITION
#define FILE_PORTABLE_DEVICE
PCONFIGURATION_INFORMATION NTAPI IoGetConfigurationInformation(VOID)
Returns a pointer to the I/O manager's global configuration information structure.
#define FILE_REMOVABLE_MEDIA
#define TRACE_LEVEL_INFORMATION
PDEVICE_OBJECT DeviceObject
PCDROM_PRIVATE_FDO_DATA PrivateFdoData
UNICODE_STRING MountedDeviceInterfaceName
CDROM_DATA DeviceAdditionalData
struct _CDROM_PRIVATE_FDO_DATA::@1062 Perf
_Must_inspect_result_ _In_ WDFDEVICE Device
#define DO_SYSTEM_CRITICAL_PARTITION
#define DO_SYSTEM_SYSTEM_PARTITION