Windows Vista Networking for Developers (September 1, 2006)
Chat Topic: Windows Vista Networking for Developers
Date: Friday, September 01, 2006
Please note: Portions of this transcript have been edited for clarity
Billy Anders - MSFT (Moderator):
Welcome everyone and thank you for joining in today's chat with the Windows Core Networking team. I'm Billy Anders - Group Program Manager in Windows Core Networking and in the room with me today are engineers from our developer-focused technology areas within of our team. As you may have heard by now, we are *REALLY* close to signing-off and releasing Release Candidate (RC1) of Windows Vista…. really close!!
We are all super excited about all of the work that we have done within Windows Networking to make Windows Vista the best platform ever released for networking development. Before we get fully started and our experts introduce themselves I wanted to bring your attention to the fact that most of the technologies that make up the development platform for Windows Networking are represented today in this chat.
They include:
Peer to Peer Networking - In addition to the new stack integrating IPv4 and IPv6, we have also made huge platform advances in the development of peer-to-peer applications. These P2P technologies include People Near Me (PNM), Peer Name Resolution Protocol (PNRP), and Grouping & Graphing. PNM is a peer-to-peer technology that allows you to discover people on your local subnet. PNRP is a server-less name resolution technology that allows you to resolve (locate) peers, whether they are people, machines, or applications, that have published themselves onto the local or public Internet. Grouping and graphing are a collection of technologies for dynamic mesh networks. You can see the P2P technologies in use today with Windows Vista end-user applications like the new Windows Meeting Space and Windows Network Projector.
Windows Filtering Platform - A new set of user and kernel-model programming interfaces that allow components to participate in the new networking stack's state machine at multiple layers, making it easier to extend the stack for implementing firewalls, anti-virus, anti-spyware, intrusion detection and more. Also, now and going-forward, WFP is the basis of Windows Vista-compliant networking security products.
System.Net - Version 3.0 of the .NET Framework is built-into Windows Vista. The System .NET managed classes provide managed code developers with a rich, robust and clean programming model for writing world-class networking applications and services. Other platforms such as Windows Communication Foundation (“Indigo”) and the upcoming Exchange Server 2007 both leverage System.NET as well as a number of new applications such as the new Windows Live Writer.
New Windows Sockets (Winsock) - Winsock v2.0 comes with a number of new enhancements for Layered Service Providers (LSP) such as LSP categorization, management and auditing as well as new APIs such as ConnectByName, ConnectByList and WSCInstallProviderAndChains for easier connecting of sockets and management of the LSP install process
New Winsock Kernel API - WSK is the new transport-independent kernel-mode programming interface for network communications. A benefit to WSK is that it provides winsock-like programming semantics, which significantly reduces the complexity of writing kernel-mode networking code. In addition, WSK leverages the innovation, scalability and performance introduced by the new networking stack. The IIS networking stack, Http.sys, is built on top of WSK.
QoS2 - qWAVE is the name of our Network Quality of Service platform for providing preferential treatment of certain subsets of network data, enabling that data to traverse the traditionally best-effort network with higher quality transmission and therefore better application and user experience.
WinINet/WinHttp - We have made significant investments in improving our native HTTP client stacks, WinINet and WinHttp, for Windows Vista and Longhorn Server. In particular, WinINet has undergone a complete cache re-write to resolve a number of issues, IPv6 literal support has been added, International Domain Names are now supported natively, IPv6 support for WPAD, ETW tracing, and the list goes on. All of these features are readily available to us, developers, but also to non-developers via Internet Explorer 7.0.
Billy Anders - MSFT (Moderator):
I am pleased to welcome our experts for today and to get things kicked off I will let each of them introduce themselves now. Please feel free to start posting your questions. Thanks.
*Introductions
Gabe Frost [MSFT] (Expert):
Hi, I'm Gabe. I manage the QoS developer platform in Windows core networking. I'll hopefully be able to answer any questions you have about the QoS subsystem, APIs, architecture, industry standards, etc. I work closely with eHome (Media Center Extenders) for audio/video streaming scenarios, so can answer questions in that area as well. Lastly, anything wireless is usually right up my alley.
Mike Flasko [MSFT] (Expert):
Hi, my name is Mike Flasko. I am the Program Manager for the System.Net namespace in the .Net Framework as well as the Winsock (Win32) networking API. I look forward to your comments and questions regarding managed and native code network development.
Mike Flasko [MSFT] (Expert):
Buggie79: What kind of tool are you looking for? What do you need it to do? To check for standard best practices in your code I strongly suggest using the FxCop tool.
Eric Han [MSFT] (Expert):
I'm Eric. I'm a program manager for the HTTP Server APIs (http.sys). These are a set of native APIs for writing server applications that list to HTTP/S traffic. Nice to meet everyone.
Ari Pernick [MSFT] (Expert):
Hi, my name is Ari Pernick. I'm a Technical Lead in Windows Core Networking. I've worked with Http.sys, WinInet and WinHttp and help run our blog at https://blogs.msdn.com/wndp and our connect site at https://connect.microsoft.com/wndp.
*Start of Chat
Gabe Frost [MSFT] (Expert):
Q: Hi I am working over wifi product in order to capture data in promiscuous mode is it difficult under windows as compare other platform. Can we make easier platform as other platform supports and Vista has such type of facility.
A: Hi AnandChoubey, it sounds like you're talking about sniffing the raw 802.11 frames from the air (e.g. Airopeek type products)? If so, *yes* the Native WiFi (NWF) provides the flexibility necessary to build this capability on top of Vista much more easily than Windows XP.
Eric Han [MSFT] (Expert):
Q: Can you suggest resouces (e.g. web sites, books) for someone coming from the embedded environment (very little windows dev) to start learning Vista at a deeper level than the marketing websites?
A: There's a book by Hart for windows programming targeted at Unix developers. I believe the title has System Programming in it. Also, there are the MSDN websites, which provide samples/APIs/and how-to's.
Ari Pernick [MSFT] (Expert):
Q: Hi, I am developing a program on Vista RC1. I found that FindFirstUrlCacheEntry, FindNextUrlCacheEntry and DeleteUrlCacheEntry etc. APIs in Wininet.dll could only enumerate/delete the "Visited" entries. Has the Wininet.dll been finished for IE7 on RC1?
A: The cache apis you are using should be for the content cache container. I talk about the different type of containers here: https://blogs.msdn.com/wndp/archive/2006/08/04/WinInet_Index_dat.aspx. To answer the other part of the question, it is possible that wininet.dll can change slightly between RC1 and RTM of IE7.
Madhurima-MSFT (Expert):
I am Program Manager for Windows Filtering Platform. Documentation on WFP is available at https://msdn2.microsoft.com/en-us/library/aa364931.aspx. I would also recommend you to join WFP newsgroup at connect site. If you have any questions today, i will be happy to take them.
Gabe Frost [MSFT] (Expert):
Q: Thanks, Then are you going to release any patch/service pack for xp as Native WiFi (NWF)
A: As I don't work in the wireless group, I'm not 100% certain whether full functionality and/or just API parity will be released down-level to XP. I've asked folks on the wireless team and will answer as soon as I hear the response.
Mike Flasko [MSFT] (Expert):
Q: How easy will IPv4 customer's be able to migrate to using the new winsock API's? Will this be incorporated in FXCop? Will recommendations be made to move to the new "WSK"?
A: Thanks for the question. The new Winsock APIs are currently available only to native code programmers unless you are willing to P/Invoke to the Winsock APIs. The new APIs are very much complementary to the existing ones. All existing APIs are also IPv6 capable. That said, the new APIs do make IPv6 programming easier. Please see https://blogs.msdn.com/wndp where we have posted about the new Winsock APIs. In addition I have started a blog series about writing IPv6 aware applications. Answer to the WSK part of this question to come.....
Ravi Rao [MSFT] (Expert):
A: Hi, my name is Ravi Rao. I am the Program Manager for the Peer to Peer Developer Platform that we've shipped in XP SP2 and Windows Vista. Applications like Windows Meeting Space in Windows Vista is built on this platform. I loook forward to hearing from you all.
Ravi Rao [MSFT] (Expert):
Q: I'm going to be developing s/w on Vista that will be talking UPnP to other devices, so resources to start in this area would be of particular help.
A: Here is a good site to get started on UPnP from: https://msdn2.microsoft.com/en-us/library/Aa382303.aspx
Mike Flasko [MSFT] (Expert):
Q: How easy will IPv4 customer's be able to migrate to using the new Winsock API's? Will this be incorporated in FXCop? Will recommendations be made to move to the new "WSK"?
A: To answer the question about WSK. WSK is NOT a replacement for user mode Winsock or System.Net. WSK is instead a kernel mode API. Moving an application from user space to kernel space should be done with great caution. Please see this blog post which discusses this in great detail:
Mike Flasko [MSFT] (Expert):
Q: How easy will IPv4 customer's be able to migrate to using the new winsock API's? Will this be incorporated in FXCop? Will recommendations be made to move to the new "WSK"?
A: https://blogs.msdn.com/wndp/search.aspx?q=wsk\&p=1
Ari Pernick [MSFT] (Expert):
Q: I notice that cache contents are putting in different places. Are there any other APIs or COM to access index.dat directly? In addition, FindFirstUrlCacheEntry, FindNextUrlCacheEntry and DeleteUrlCacheEntry can work well for IE7 on XP.
A: I'm not aware of any APIs to access the contents of index.dat outside of thoose in WinInet.dll.
Ari Pernick [MSFT] (Expert):
Q: Are there any examples of Microsoft products that use the new P2P APIs?
A: Windows Meeting Space in Windows Vista uses the P2P apis.
Mike Flasko [MSFT] (Expert):
Q: Also are there any plans for creating managed (.NET) versions of the APIs for us .NET fans?
A: yes, very much so. We are working to add these in a future release :D . If there are any specific APIs you are most after you can email our team the ask directly at nclasks@microsoft.com.
Gabe Frost [MSFT] (Expert):
AnandChoubey, make sure you mark your submission as a question so we can easily see it (I just noticed it amongst the other text). There should be sample NWF miniport code in the Windows Vista driver kit (WDK).
Billy Anders - MSFT (Moderator):
Please make sure that you click the "Ask the Experts" checkbox before you click "Send"
Gabe Frost [MSFT] (Expert):
Regarding unsigned driver: this is true *only* for 64 bit flavors.
Ravi Rao [MSFT] (Expert):
Bruce, the peer channel with the Windows Communication Foundation enables peer to peer multiparty activities on XP SP2 and Windows Vista (and even Server 2003). So, if the application you were looking for was to build a multiparty activity (such as this kind of a chat application), it is very easy to do using the peer channel.
Ravi Rao [MSFT] (Expert):
Bruce, also other technologies like PNRP (which enables scenarios like remote desktop to your home machine in a peer to peer manner) and People Near Me (which enables seeing people nearby and interacting with them) will get managed wrappers in a future release.
Mike Flasko [MSFT] (Expert):
Q: So it sounds like the main areas concerning networking for non-kernel managed/native developers are still in http.sys, winsock, and System.net. Thanks.
A: Yes, for user mode winsock is still the core sockets API and System.Net is the core network APIs in the managed space.
Gabe Frost [MSFT] (Expert):
Q: Does the IT QoS technology support WMM as well as DSCP? Also, are there any plans for managing markings on older, XP, OSes?
A: Hi Bruce, yes. I posted a 4 part series on this topic in our blog (https://blogs.msdn.com/wndp). See the QoS subsection. This series describes how DSCP is used to obtain WMM in Vista. On XP, the answer is slightly more complicated. While there are APIs in XP to mark DSCP on outgoing packets, it's ultimately up to the wireless miniport driver to add the packet to the appropriate WMM access category (BG, BE, VI, VO). For DSCP, this would require the miniport to manually parse the IP header in each packet (per packet performance hit). Some drivers do this, others do not. We have removed this burden from miniport drivers in Vista.
Mike Flasko [MSFT] (Expert):
Q: So it sounds like the main areas concerning networking for non-kernel managed/native developers are still in http.sys, winsock, and System.net. Thanks.
A: I would also like to meantion a new set of native P2P APIs are available. We are working to expose them in managed code in a future release. These new APIs provide the core building blocks for one to create compelling peer-to-peer applications.
Eric Han [MSFT] (Expert):
Q: what is http:/1.0 403orbidden
A: I believe your referring to HTTP/1.0 and the 403 message. With the 403, these are requests that failed authentication. Additionally, you may be referring to pre-IIS6, for which this link discusses: https://support.microsoft.com/kb/q184484/
Ari Pernick [MSFT] (Expert):
Q: I have heard about COM access to the Vista operating system, not just for network control, but have not seen any information about this. Is Microsoft planning on exposing any of the winsock functionality in COM objects? Thank you.
A: No, We are not currently planning to expose winsock functionality in COM. There is HTTP client functionality in COM exposed through WinHttp's COM APIs, that COM interface is also scriptable.
Gabe Frost [MSFT] (Expert):
Q: Does the IT QoS technology support WMM as well as DSCP? Also, are there any plans for managing markings on older, XP, OSes?
A: The specific series is "WiFi QoS Support in Windows Vist
A: WMM part 1-4"
Ari Pernick [MSFT] (Expert):
Q: If the wininet.dll is fully functional, can the APIs in Wininet.dll find/delete all cache contents like what they did on XP? I assumed the wininet.dll in RC1 is not finished.
A: Yes, it should be about to find all the entries in the cache container. If there is a problem you are seeing, please file a bug/feedback on our connect site at https://connect.microsoft.com/wndp
Mike Flasko [MSFT] (Expert):
Q: I hear that WFP and WSK are the replacements for TDI. Is there a replacement for writing TDI providers?
A: That is correct WSK is the replacement for TDI Clients and WFP is the replacement for TDI Filters. There is currently no replacement for TDI Providers on Vista. If you are creating a TDI provider there is no new API on Windows Vista for that.
Gabe Frost [MSFT] (Expert):
Q: Hi Please suggest some books/links which tell about vista internal details?
A: Unfortunately, there have not yet been any books published on Vista internals. When there are, we'll write a blog post about it.
Ari Pernick [MSFT] (Expert):
Q: Hi Please suggest some books/links which tell about vista internal details?
A: My personal favorite is the Windows Internals book by these guys: https://www.microsoft.com/whdc
Billy Anders - MSFT (Moderator):
We're going to close down this chat in 3 minutes. The transcript will be available online in the next few days. Please be sure to check out the Core Networking blog at: https://blogs.msdn.com/wndp for more information about all of our technologies.
Mike Flasko [MSFT] (Expert):
Q: does vista/xp/win2k3 support sending/receiving automatic encryption/decryption data over socket?
A: Yes, for managed code see the SslStream or NegotiateStream class. For native code, please see the secure sockets API.
Ravi Rao [MSFT] (Expert):
Q: Is there any future for multicasting support?
A: Could you clarify your question on "future for multicasting"? Multicast is supported in Windows Vista. In addition, the peer channel in Windows Communication Foundation (part of .NET 3.0) enables multiparty messaging (multicast like) without actualy using IP multicast. So, you can have a very large number of people in a multiparty session in much the same way you would with multicast, except it would work over the Internet and it would work completely peer to peer.
Ravi Rao [MSFT] (Expert):
If you wish to learn anything else on peer to peer, please visit https://www.microsoft.com/p2p or send email to peerfb@microsoft.com. Thanks!
Gabe Frost [MSFT] (Expert):
Q: what is the handling on a single processor system when the processor is executing the ISR(NIC), and another network packet came. Is it possible to set processor affinity code inside NDIS IM driver code?
A: Sorry folks, we have to run. Back to working on Vista! Please watch the Windows Vista website for the public download of RC1! Billy will probably post a link on the blog too.
Mike Flasko [MSFT] (Expert):
Thanks for the great questions - please watch https://blogs.msdn.com/wndp for future updates
Billy Anders - MSFT (Moderator):
Thanks everyone for joining the chat today. The transcript will be available online. We'll have the link on our blog site.
Top of page