Presentation is loading. Please wait.

Presentation is loading. Please wait.

请点击以下链接下载WinHEC的演讲材料

Similar presentations


Presentation on theme: "请点击以下链接下载WinHEC的演讲材料"— Presentation transcript:

1 请点击以下链接下载WinHEC的演讲材料
Download WinHEC presentations here:

2 Writing Drivers with the Windows Driver Frameworks
WinHEC 2015 4/13/2017 4:34 AM Writing Drivers with the Windows Driver Frameworks Rossy Program Manager © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

3 The Windows Driver Frameworks make it easy to write high-quality drivers.

4 Agenda The benefits of using WDF WDF core technical concepts
Tech Ready 15 4/13/2017 Agenda The benefits of using WDF WDF core technical concepts Io Handling Hardware Interaction PnP & Power Interaction WDF open source © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

5 What’s WDF and why use it?
4/13/2017 4:34 AM What’s WDF and why use it? © 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

6 What is WDF exactly? Libraries and tools to make writing drivers easy
WinHEC 2015 4/13/2017 4:34 AM What is WDF exactly? Libraries and tools to make writing drivers easy Abstracts complexities of underlying OS internals Makes possible a <20 line driver Extensible for different device classes Consistency across different device classes E.g. GPIO, UART, I2C, NFC, Sensor drivers Easy driver debugging Built in framework activity logging Specialized tools for driver analysis © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

7 Supports user-mode and kernel-mode
WinHEC 2015 4/13/2017 4:34 AM Supports user-mode and kernel-mode Kernel-Mode Driver Framework (KMDF) 1000s of drivers across most device classes User-Mode Driver Framework (UMDF) Original UMDF v1 was C++ COM based UMDF v2 uses the same driver model & syntax as kernel-mode Supports USB peripherals, Sensors, NFC, Smartcard, HID (including touch)… Crashing driver affects only the hosting process, not the whole system Restart policy can recover crashed UMDF drivers © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

8 WDF is available across the Universal platform
WinHEC 2015 4/13/2017 4:34 AM WDF is available across the Universal platform Supported across suite of Windows devices © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

9 WDF Core Concepts 4/13/2017 4:34 AM
© 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

10 Driver Workflow Device operational I/O Request handling
WinHEC 2015 4/13/2017 4:34 AM Driver Workflow Device operational I/O Request handling Driver Initialization Hardware preparation Driver Cleanup H/W Interaction Pnp/Power Interaction © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

11 Objects are the basis of WDF
WinHEC 2015 4/13/2017 4:34 AM Objects are the basis of WDF Everything in the framework is represented by objects (Driver, Devices, Queues, etc.) Objects have methods, events, and properties Objects are accessed via handles from methods like WdfDeviceGetDriver WDFOBJECT Methods Properties Events WDF functions that operate on objects Where you can register callbacks Single values accessible via get/set methods © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

12 Automatic object lifetime management
WinHEC 2015 4/13/2017 4:34 AM Automatic object lifetime management WDF manages allocation and freeing of objects Maintains a parent/child hierarchy E.g. When a client completes a WDF request, it is automatically deleted Driver (WDFDRIVER) Device (WDFDEVICE) Device (WDFDEVICE) WdfRequestCompleteWithInformation( Request, STATUS_INVALID_DEVICE_REQUEST, (ULONG_PTR) 0 ); Queue (WDFQUEUE) Queue (WDFQUEUE) Flexibility where needed: drivers can choose to mange object lifetime themselves © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

13 Object Contexts Every WDF object has a context space
WinHEC 2015 4/13/2017 4:34 AM Object Contexts Every WDF object has a context space Context is an arbitrary-sized structure allocated and destroyed by the framework Used by drivers to store object-specific data For example, a driver with multiple device objects uses context data to differentiate © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

14 Driver Workflow Device operational I/O Request handling
WinHEC 2015 4/13/2017 4:34 AM Driver Workflow Device operational I/O Request handling Driver Initialization Hardware preparation Driver Cleanup H/W Interaction Pnp/Power Interaction © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

15 DriverEntry – Creating the driver
WinHEC 2015 4/13/2017 4:34 AM DriverEntry – Creating the driver First routine called DriverEntry is the first driver-supplied routine called when driver is loaded Creates the WDF Driver Object WdfDriverCreate ( RawDriverObject, […] , attributes, &driver ) © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

16 Driver Initialization - DriverEntry( )
WinHEC 2015 4/13/2017 4:34 AM Driver Initialization - DriverEntry( ) NTSTATUS DriverEntry( _In_ PDRIVER_OBJECT DriverObject, _In_ PUNICODE_STRING RegistryPath ) { […] // Create WDF Driver Object WDF_OBJECT_ATTRIBUTES_INIT(&attributes); attributes.EvtDriverUnload = OnDriverUnload; WDF_DRIVER_CONFIG_INIT(&config, OnDeviceAdd); status = WdfDriverCreate(DriverObject, RegistryPath, &attributes, &config, &driver ); } Declare vars WDF Event WDF Method WDF Object © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

17 OnDeviceAdd – Configs & Objects
WinHEC 2015 4/13/2017 4:34 AM OnDeviceAdd – Configs & Objects Drivers can specify static configurations Is driver is acting as a filter? Is driver is the Power Policy owner? Create relevant objects Create I/O Queues for device objects Create utility objects such as timers, workitems, locks © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

18 Driver Initialization - OnDeviceAdd()
WinHEC 2015 4/13/2017 4:34 AM Driver Initialization - OnDeviceAdd() NTSTATUS OnDeviceAdd( WDFDRIVER Driver, PWDFDEVICE_INIT DeviceInit ) { WDFDEVICE device; IWDFIoQueue * pDefaultQueue = NULL; DeviceInit->SetPowerPolicyOwnership(TRUE); status = WdfDeviceCreate(&DeviceInit, &deviceAttributes, &device); context = GetContext(device); context->WdfDevice = device; status = pIWDFDevice->CreateIoQueue( NULL, TRUE, WdfIoQueueDispatchParallel, TRUE, FALSE, &pDefaultQueue ); return status; } Static Configuration Device Create Setting Context Queue Create © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

19 Driver Workflow Device operational I/O Request handling
WinHEC 2015 4/13/2017 4:34 AM Driver Workflow Device operational I/O Request handling Driver Initialization Hardware preparation Driver Cleanup H/W Interaction Pnp/Power Interaction © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

20 Hardware Preparation Events
WinHEC 2015 4/13/2017 4:34 AM Hardware Preparation Events Get hardware resources, Do some static configuration, (PrepareHardware) Enter powered state (D0Entry) Enable interrupts (InterruptEnable) © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

21 Prepare Hardware Get hardware resources, Do some static configuration,
WinHEC 2015 4/13/2017 4:34 AM Prepare Hardware NTSTATUS OnPrepareHardware( WDFDEVICE Device, WDFCMRESLIST ResourcesRaw, WDFCMRESLIST ResourcesTranslated ) { int ResourceCount = WdfCmResourceListGetCount( ResourcesTranslated ); for (i=0; i < ResourceCount; i++) { descriptor = WdfCmResourceListGetDescriptor( ResourcesTranslated, i); switch(descriptor->Type) { case CmResourceTypePort: […] case CmResourceTypeMemory: […] case CmResourceTypeInterrupt: […] default: break; } return STATUS_SUCCESS; Get hardware resources, Do some static configuration, (PrepareHardware) Enter powered state (D0Entry) Enable interrupts (InterruptEnable) © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

22 Device Power up Get hardware resources, Do some static configuration,
WinHEC 2015 4/13/2017 4:34 AM Device Power up Get hardware resources, Do some static configuration, (PrepareHardware) NTSTATUS OnD0Entry( IN WDFDEVICE Device, IN WDF_POWER_DEVICE_STATE RecentPowerState ){ PADXL345AccDevice pAccDevice = nullptr pAccDevice = GetContext(Device); WdfWaitLockAcquire(pAccDevice->m_WaitLock); I2CSensorWriteRegister( pAccDevice->m_I2CIoTarget, MY_REGISTER, MY_VALUE, sizeof(MY_VALUE) ); pAccDevice->m_PoweredOn = true; WdfWaitLockRelease(pAccDevice->m_WaitLock); return STATUS_SUCCESS; } Enter powered state (D0Entry) Enable interrupts (InterruptEnable) © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

23 Enable Interrupts Get hardware resources,
WinHEC 2015 4/13/2017 4:34 AM Enable Interrupts NTSTATUS OnInterruptEnable( IN WDFINTERRUPT Interrupt, IN WDFDEVICE Device){ PDEVICE_EXTENSION devExt; ULONG regUlong; PULONG intCsr; devContext = GetDeviceContext( WdfInterruptGetDevice(Interrupt) ); intRegId = &devContext->IntRegisterId regVal = READ_REGISTER_ULONG( intRegId ); regVal = ENABLE_INTERRUPT_BYTE( regVal ); WRITE_REGISTER_ULONG( intRegId, regVal ); return STATUS_SUCCESS; } Get hardware resources, Do some static configuration, (PrepareHardware) Enter powered state (D0Entry) Enable interrupts (InterruptEnable) © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

24 Extend as needed EvtIoResume EvtDMAEnablerFill
WinHEC 2015 4/13/2017 4:34 AM Extend as needed Get hardware resources, Do some static configuration, (PrepareHardware) EvtIoResume EvtDMAEnablerFill EvtDeviceSelfManagedIoInit EvtDeviceDisarmWakeFromSx EventChildListScanForChildren EvtDeviceRemoveAddedResources Enter powered state (D0Entry) Enable interrupts (InterruptEnable) © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

25 Driver Workflow Device operational I/O Request handling
WinHEC 2015 4/13/2017 4:34 AM Driver Workflow Device operational I/O Request handling Driver Initialization Hardware preparation Driver Cleanup H/W Interaction Pnp/Power Interaction © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

26 I/O Delivery Through the Framework
WinHEC 2015 4/13/2017 4:34 AM I/O Delivery Through the Framework I/O Dispatcher Queue Selection Execution Level & Sync Scope Power Management Driver’s OnRead IRP WDFREQUEST WDFREQUEST © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

27 Queue Selection Queue Types
I/O Dispatcher Queue Selection Execution Level & Sync Scope Driver’s OnRead I/O Power Management Queue Types Sequential: Requests are delivered one at a time Parallel: Requests are delivered to the driver as they arrive Manual: Driver retrieves requests from the WDQUEUE at its own pace Parallel WDFREQUEST Read I/O Dispatcher Write IRPs Sequential WDFREQUEST IOCTL Manual WDFREQUEST

28 Execution Level & Sync Scope
I/O Dispatcher Queue Selection Execution Level & Sync Scope Driver’s OnRead I/O Power Management IRQL: Interrupt Request Level (PASSIVE_LEVEL, DISPATCH_LEVEL) Execution Level: IRQL at which event callbacks are invoked Synchronization Scope: Mechanism for enforcing serialization of callback execution by managing locks Device Scope: Synchronization of callbacks for a device’s queue and file objects Queue Scope: Synchronization of callbacks for a queue None: No synchronization

29 Power management Power Managed Queues Queue events
I/O Dispatcher Queue Selection Execution Level & Sync Scope Driver’s OnRead I/O Power Management Power Managed Queues WDF Queues can be “Power Managed” Requests are delivered only if the device is powered Helps driver avoid touching H/W when it is powered off Queue events EvtIoStop: Called for all requests already delivered to driver when power down happens EvtIoResume: Called for all inflight requests when a power up happens

30 Request Cancellation Queued request can be cancelled.
“In-flight” requests must be made cancelable A request should be made cancelable if: The I/O is going to take long time to complete The I/O operation on the hardware is abortable WdfRequestMarkCancelable ( Request, OnRequestCancel );

31 Driver Workflow Device operational I/O Request handling
WinHEC 2015 4/13/2017 4:34 AM Driver Workflow Device operational I/O Request handling Driver Initialization Hardware preparation Driver Cleanup H/W Interaction Pnp/Power Interaction © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

32 Interacting with H/W using I/O targets
WinHEC 2015 4/13/2017 4:34 AM Interacting with H/W using I/O targets Drivers can’t always complete requests Need assistance from other drivers in the stack Driver to Driver I/O Targets can be next driver in the stack Can be external driver outside the stack I/O targets as translators I/O Target acts as a translator between framework and target device object © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

33 Default vs Remote I/O Targets
WinHEC 2015 4/13/2017 4:34 AM Default vs Remote I/O Targets Default I/O Targets The next device object lower in driver stack WDFIOTARGET ioTarget = WdfDeviceGetIoTarget(Device); Remote I/O Targets Remote target represents a device object created by some other driver WdfIoTargetCreate(Device, WDF_OBJECT_ATTRIBUTES, &IoTarget); © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

34 Sending requests to I/O target
WHDC PowerPoint Template Notes & Handouts Thursday, April 13, 2017 Sending requests to I/O target Synchronously or asynchronously. Sync - WdfIoTargetSendReadSynchronously Async - WdfIoTargetFormatRequestForRead followed by WdfRequestSend Timeouts Drivers can configure requests to cancel after timeout Recommended to avoid driver hangs WdfIoTargetSendIoctlSynchronously( ioTarget, NULL, IOCTL_ACPI_ASYNC_EVAL_METHOD, &inputBufDesc, &outputBufDesc, NULL, NULL); Microsoft Confidential - Windows Hardware & Driver Central

35 Driver Workflow Device operational I/O Request handling
WinHEC 2015 4/13/2017 4:34 AM Driver Workflow Device operational I/O Request handling Driver Initialization Hardware preparation Driver Cleanup H/W Interaction Pnp/Power Interaction © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

36 PnP and Power Interaction
WinHEC 2015 4/13/2017 4:34 AM PnP and Power Interaction PnP Scenarios: Device is unplugged. Driver is manually disabled. Power Scenarios: System is suspended. Device is idle for a long time User presses mouse button to wake the system © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

37 Opt-in behavioral model
WinHEC 2015 4/13/2017 4:34 AM Opt-in behavioral model Drivers provide only necessary event callbacks Devices which have volatile hardware state (power on & off) D0Entry, D0Exit, … Devices which have wake signals ArmWakeFrom, DisarmWakeFrom, … Reasonable default implementations Events without driver callbacks registered for them are handled by WDF © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

38 Device is unplugged / disabled
WinHEC 2015 4/13/2017 4:34 AM Device is unplugged / disabled Queues automatically stopped WDF stops power-managed queues and top level Drivers don’t end up sending requests devices not present In-flight request notified Framework invokes OnIoStop callback for requests already delivered Driver can gracefully stop I/O © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

39 System goes into sleep Device powered down Devices can wake the system
WinHEC 2015 4/13/2017 4:34 AM System goes into sleep Device powered down Drivers can ask WDF to automatically power down devices as system sleeps Devices can wake the system Drivers can have their devices armed to wake system on input WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS_INIT(&wakeSettings); WdfDeviceAssignSxWakeSettings( device, &wakeSettings ); © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

40 Driver Workflow Device operational I/O Request handling
WinHEC 2015 4/13/2017 4:34 AM Driver Workflow Device operational I/O Request handling Driver Initialization Hardware preparation Driver Cleanup H/W Interaction Pnp/Power Interaction © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

41 4/13/2017 4:34 AM WDF Open Source © 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

42 WDF on GitHub! Available starting tomorrow Includes KMDF and UMDF v2
Published under MIT License

43 Private Symbols Included
Published via Microsoft’s Symbol Server Enables debugging with framework source code Instructions can be found in the repo wiki

44 Scope of open source

45 Demo A Driver Crash

46 Use the WDF to write better drivers
Tech Ready 15 4/13/2017 Use the WDF to write better drivers Abstractions to make drivers simpler Drivers to only implement event callbacks they need to customize Provides a powerful utility objects, manages object lifetime Powerful debugging tools Automated framework logging (WPP Recorder) Custom extensions for Windows Debugger (WinDbg) New add-in for Windows Performance Analyzer (WPA) © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

47 Further reading and documentation
WDF Book/ MSDN Documentation Developing Drivers with Windows Driver Foundation by Orwick and Smith Kernel-Mode Driver Framework Design Guide User-Mode Driver Framework Design Guide Choosing a driver model Driver Samples A basic “Toaster” sample (UMDF2) Echo driver sample, showing queues and IOCTLS (KMDF) USB FX2 Function Driver (UMDF2)

48 Grand Ballroom III Mansion VIII
12:30 Introduction to Hardware Lifecycle 13:40 Tools for Windows Driver Development 15:00 Intro to Windows Driver Development 16:10 Writing Drivers with the WDF <Day 2> 10:30 Lab: Getting Started with Driver Dev 11:30 Lunch Accessing GPIO, I2C, and UART devices Lab: Driver Testing and Debugging Driver Testing and Debugging Lab: Sensor Driver on Sharks Cove Testing with the Hardware Lab Kit Intro to Driver Signing, Distribution, Servicing Lab: Testing with the Hardware Lab Kit 17:20 <Day 3> 09:00 10:10 WinHEC 2015 4/13/2017 4:34 AM © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

49 Please Complete an Evaluation. Your input is important!
Tech Ready 15 4/13/2017 Please Complete an Evaluation. Your input is important! Access Evaluation Forms: © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

50 4/13/2017 4:34 AM (c) 2015 Microsoft Corporation.  All rights reserved.  This document is provided "as-is." Information and views expressed in this document, including URL and other Internet Web site references, may change without notice. You bear the risk of using it.  This document does not provide you with any legal rights to any intellectual property in any Microsoft product. You may copy and use this document for your internal, reference purposes. Some information relates to pre-released product which may be substantially modified before it’s commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here. © 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.


Download ppt "请点击以下链接下载WinHEC的演讲材料"

Similar presentations


Ads by Google