← Back to Patent Explorer
US5845280A Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for transmitting a file in a network using a single transmit request from a user-mode process to a kernel-mode process

Assignee: Microsoft Technology Licensing LLC
•
Filing: 1995-09-25
•
Granted: 1998-12-01
•
Expires: 2015-09-25
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and apparatus for transmitting files on a network are described. In response to a network request for a file stored on a secondary data storage device such as a hard disk, a file server retrieves and transmits the file using a reduced number of calls from user-mode processes to kernel-mode processes. In response to a file request from a non-local networked machine, a user-mode process on the file server issues a command to a kernel-mode process requesting transmission of the requested file to the non-local networked machine via a designated connection. In response, the requested file is retrieved from the secondary data storage device and placed in kernel-mode accessed memory (e.g., cache memory). After the requested file information is stored in the kernel-mode accessed memory, a kernel-mode data transmission procedure transmits the requested file information directly from the kernel-mode accessed memory.

Inventors

  • 👤 David R. Treadwell, III
  • 👤 Michael T. Massa

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-02 03:54
CPC Classifications
H; H04; H04L; H04L67/00; H04L67/01; H04L67/06; H04L69/00; H04L69/30; H04L69/32; H04L69/322; H04L69/326; H04L9/00; H04L9/40; H04L69/329; Y; Y10; Y10S; Y10S707/00; Y10S707/99931; Y10S707/99938; Y10S707/99939

Claims Analysis

Total Claims: 85
Claim 1
Independent Claim 121 words
A method for transmitting data from a file stored on a secondary data storage device on a first networked machine having a kernel-mode accessed memory to a second networked machine, said method comprising the steps of: issuing, using a single call by a user-mode process within the first networked machine to a kernel-mode process, a transmit request including a non-address file identification corresponding to the file; copying by the kernel-mode process, in response to the issuing step, a data block within the file from the secondary data storage device to the kernel-mode accessed memory; and transmitting by a kernel-mode data transmission procedure, in response to the copying step, the data block from the kernel-mode accessed memory to the second networked machine.
Claim 2
Independent Claim 121 words
A method for transmitting data from a file stored on a secondary data storage device on a first networked machine having a kernel-mode accessed memory to a second networked machine, said method comprising the steps of: issuing, using a single call by a user-mode process within the first networked machine to a kernel-mode process, a transmit request including a non-address file identification corresponding to the file; copying by the kernel-mode process, in response to the issuing step, a data block within the file from the secondary data storage device to the kernel-mode accessed memory; and transmitting by a kernel-mode data transmission procedure, in response to the copying step, the data block from the kernel-mode accessed memory to the second networked machine.
Claim 3
Dependent Claim 14 words
The method of claim 1 wherein the non-address file identification is a file handle.
Claim 4
Dependent Claim 14 words
The method of claim 1 wherein the non-address file identification is a file name.
Claim 5
Dependent Claim 76 words
The method of claim 1 wherein the data block is transmitted from the first networked machine to the second networked machine via an established connection between the first networked machine and the second networked machine during the transmitting step, and wherein the method further comprises the step of: providing, by the user-mode process to a kernel-mode process, a network connection identifier corresponding to the established connection between the first networked machine and the second networked machine.
Claim 6
Dependent Claim 14 words
The method of claim 4 wherein the network connection identifier is a socket handle.
Claim 7
Dependent Claim 36 words
The method of claim 1 further comprising the step of: returning, by the kernel-mode process to the user-mode process, an event parameter signalling a successful transmission of data from the file to the second networked machine.
Claim 8
Dependent Claim 49 words
The method of claim 1 wherein the data block is stored in a buffer within the kernel-mode accessed memory during the copying step, and the method further comprises the step of: providing to the kernel-mode data transmission procedure an identifier corresponding to the buffer within the kernel-mode accessed memory.
Claim 9
Dependent Claim 19 words
The method of claim 7 wherein the identifier comprises a pointer to the buffer within the kernel-mode accessed memory.
Claim 10
Dependent Claim 22 words
The method of claim 1 further comprising: transmitting caller data, in response to the issuing step, via the kernel-mode data transmission procedure.
Claim 11
Dependent Claim 23 words
The method of claim 9 wherein the transmitting caller data comprises the step of sending head data via the kernel-mode data transmission procedure.
Claim 12
Dependent Claim 23 words
The method of claim 9 wherein the transmitting caller data comprises the step of sending tail data via the kernel-mode data transmission procedure.
Claim 13
Dependent Claim 41 words
The method of claim 1 further comprising the steps of: transmitting head data, in response to the issuing step, via the kernel-mode data transmission procedure; and transmitting tail data, in response to the issuing step, via the kernel-mode data transmission procedure.
Claim 14
Dependent Claim 16 words
The method of claim 1 wherein the kernel-mode data transmission procedure incorporates a transport layer protocol.
Claim 15
Dependent Claim 16 words
The method of claim 13 wherein the kernel-mode data transmission procedure incorporates a TCP/IP transport protocol.
Claim 16
Dependent Claim 16 words
The method of claim 13 wherein the kernel-mode data transmission procedure incorporates an IPX/SPX transport protocol.
Claim 17
Dependent Claim 19 words
The method of claim 1 wherein the kernel-mode accessed memory comprises cache memory administered by a file system cache.
Claim 18
Dependent Claim 15 words
The method of claim 1 wherein the secondary data storage device is a hard disk.
Claim 19
Dependent Claim 15 words
The method of claim 1 wherein the secondary data storage device is a CD ROM.
Claim 20
Independent Claim 157 words
A method for transmitting, by means of a series of send operations performed by a kernel-mode transmission procedure, data from a file stored on a secondary data storage device on a first networked machine having a kernel-mode accessed memory to a second networked machine, said method comprising the steps of: issuing, using a single call by a user-mode process within the first networked machine to a kernel-mode process, a transmit request including an identifier of a segment of data; copying by the kernel-mode process, in response to the issuing step, the segment of data comprising a plurality of data blocks, from the secondary data storage device to the kernel-mode accessed memory; and repeating a plurality of times, by kernel-mode processes, in response to the issuing step, the steps of: identifying a designated data block of the plurality of data blocks; and transmitting, by the kernel-mode data transmission procedure, the designated data block to the second networked machine.
Claim 21
Independent Claim 157 words
A method for transmitting, by means of a series of send operations performed by a kernel-mode transmission procedure, data from a file stored on a secondary data storage device on a first networked machine having a kernel-mode accessed memory to a second networked machine, said method comprising the steps of: issuing, using a single call by a user-mode process within the first networked machine to a kernel-mode process, a transmit request including an identifier of a segment of data; copying by the kernel-mode process, in response to the issuing step, the segment of data comprising a plurality of data blocks, from the secondary data storage device to the kernel-mode accessed memory; and repeating a plurality of times, by kernel-mode processes, in response to the issuing step, the steps of: identifying a designated data block of the plurality of data blocks; and transmitting, by the kernel-mode data transmission procedure, the designated data block to the second networked machine.
Claim 22
Dependent Claim 57 words
The method of claim 19 further comprising the steps of: determining, by a kernel-mode process, that a remaining portion of the plurality of data blocks has not been transmitted, and in response thereto updating a pointer identifying a next data block of the segment of data to be transmitted in accordance with said identifying and transmitting steps.
Claim 23
Dependent Claim 77 words
The method of claim 19 wherein the designated data block is transmitted from the first networked machine to the second networked machine via an established connection between the first networked machine and the second networked machine during the transmitting step, and wherein the method further comprises the step of: providing, by the user-mode process to a kernel-mode process, a network connection identifier corresponding to the established connection between the first networked machine and the second networked machine.
Claim 24
Dependent Claim 14 words
The method of claim 21 wherein the network connection identifier is a socket handle.
Claim 25
Dependent Claim 45 words
The method of claim 19 wherein the designated data block is stored in a buffer within the kernel-mode accessed memory during the copying step, and the method further comprises the step of: providing to the kernel-mode data transmission procedure an identifier corresponding to the buffer.
Claim 26
Dependent Claim 19 words
The method of claim 23 wherein the identifier comprises a pointer to the buffer within the kernel-mode accessed memory.
Claim 27
Dependent Claim 25 words
The method of claim 19 further comprising the step of: transmitting caller data, in response to the issuing step, via the kernel-mode data transmission procedure.
Claim 28
Dependent Claim 25 words
The method of claim 25 wherein the step of transmitting caller data comprises the step of sending head data via the kernel-mode data transmission procedure.
Claim 29
Dependent Claim 25 words
The method of claim 25 wherein the step of transmitting caller data comprises the step of sending tail data via the kernel-mode data transmission procedure.
Claim 30
Dependent Claim 41 words
The method of claim 19 further comprising the steps of: transmitting head data, in response to the issuing step, via the kernel-mode data transmission procedure; and transmitting tail data, in response to the issuing step, via the kernel-mode data transmission procedure.
Claim 31
Dependent Claim 16 words
The method of claim 19 wherein the kernel-mode data transmission procedure incorporates a transport layer protocol.
Claim 32
Dependent Claim 16 words
The method of claim 29 wherein the kernel-mode data transmission procedure incorporates a TCP/IP transport protocol.
Claim 33
Dependent Claim 16 words
The method of claim 29 wherein the kernel-mode data transmission procedure incorporates an IPX/SPX transport protocol.
Claim 34
Dependent Claim 19 words
The method of claim 19 wherein the kernel-mode accessed memory comprises cache memory administered by a file system cache.
Claim 35
Dependent Claim 15 words
The method of claim 19 wherein the secondary data storage device is a hard disk.
Claim 36
Dependent Claim 15 words
The method of claim 19 wherein the secondary data storage device is a CD ROM.
Claim 37
Independent Claim 169 words
A method for transmitting, by means of a series of send operations performed by a kernel-mode transmission procedure, data from a file stored on a secondary data storage device on a first networked machine having a kernel-mode accessed memory to a second networked machine, said method comprising the steps of: issuing, using a single call by a user-mode process within the first networked machine to a kernel-mode process, a transmit request including an identifier of a segment of data; and performing, by kernel-mode processes, in response to the issuing step, a transmission of the segment of data comprising a plurality of data blocks to the second networked machine, said performing step comprising repeating a plurality of times the steps of: identifying a designated data block of the plurality of data blocks; copying the designated data block from the secondary data storage device to the kernel-mode accessed memory; and transmitting, by the kernel-mode data transmission procedure, the designated data block from the kernel-mode accessed memory to the second networked machine.
Claim 38
Independent Claim 169 words
A method for transmitting, by means of a series of send operations performed by a kernel-mode transmission procedure, data from a file stored on a secondary data storage device on a first networked machine having a kernel-mode accessed memory to a second networked machine, said method comprising the steps of: issuing, using a single call by a user-mode process within the first networked machine to a kernel-mode process, a transmit request including an identifier of a segment of data; and performing, by kernel-mode processes, in response to the issuing step, a transmission of the segment of data comprising a plurality of data blocks to the second networked machine, said performing step comprising repeating a plurality of times the steps of: identifying a designated data block of the plurality of data blocks; copying the designated data block from the secondary data storage device to the kernel-mode accessed memory; and transmitting, by the kernel-mode data transmission procedure, the designated data block from the kernel-mode accessed memory to the second networked machine.
Claim 39
Dependent Claim 58 words
The method of claim 35 further comprising the steps of: determining, by a kernel-mode process, that a remaining portion of the plurality of data blocks has not been transmitted, and in response thereto updating a pointer identifying a next data block of the segment of data to be transmitted in accordance with said identifying, copying and transmitting steps.
Claim 40
Dependent Claim 153 words
A file server for receiving a request for transmitting data from a file stored upon a secondary data storage device from a second networked machine, and in response transmitting the data from the file to the second networked machine, the file server comprising: a kernel-mode accessed memory; a user-mode process for issuing a transmit request using a single call to a kernel-mode process, the transmit request including a non-address file identification corresponding to the file; a kernel-mode file system data controller for copying, in response to the transmit request, a data block within the file from the secondary data storage device to the kernel-mode accessed memory; and a kernel-mode data transmission controller for transmitting, in response to the transmit request and the kernel-mode file system data controller copying the data block to the kernel-mode accessed memory, the data block from the kernel-mode accessed memory to the second networked machine on the established connection.
Claim 41
Dependent Claim 153 words
A file server for receiving a request for transmitting data from a file stored upon a secondary data storage device from a second networked machine, and in response transmitting the data from the file to the second networked machine, the file server comprising: a kernel-mode accessed memory; a user-mode process for issuing a transmit request using a single call to a kernel-mode process, the transmit request including a non-address file identification corresponding to the file; a kernel-mode file system data controller for copying, in response to the transmit request, a data block within the file from the secondary data storage device to the kernel-mode accessed memory; and a kernel-mode data transmission controller for transmitting, in response to the transmit request and the kernel-mode file system data controller copying the data block to the kernel-mode accessed memory, the data block from the kernel-mode accessed memory to the second networked machine on the established connection.
Claim 42
Dependent Claim 15 words
The file server of claim 37 wherein the non-address file identification is a file handle.
Claim 43
Dependent Claim 15 words
The file server of claim 37 wherein the non-address file identification is a file name.
Claim 44
Dependent Claim 70 words
The file server of claim 37 wherein the data block is transmitted from the file server to the second networked machine via an established connection between the file server and the second networked machine, and wherein the file server further comprises: means for providing, by the user-mode process to a kernel-mode process, a network connection identifier corresponding to the established connection between the file server and the second networked machine.
Claim 45
Dependent Claim 15 words
The file server of claim 40 wherein the network connection identifier is a socket handle.
Claim 46
Dependent Claim 46 words
The file server of claim 37 wherein the data block is stored in a buffer within the kernel-mode accessed memory, and the file server further comprises: means for providing to the kernel-mode data transmission controller an identifier corresponding to the buffer within the kernel-mode accessed memory.
Claim 47
Dependent Claim 20 words
The file server of claim 42 wherein the identifier comprises a pointer to the buffer within the kernel-mode accessed memory.
Claim 48
Dependent Claim 25 words
The file server of claim 37 further comprising: means for transmitting caller data, in response to the transmit request, via the kernel-mode data transmission controller.
Claim 49
Dependent Claim 19 words
The file server of claim 44 wherein the means for transmitting caller data comprises means for transmitting head data.
Claim 50
Dependent Claim 19 words
The file server of claim 45 wherein the means for transmitting caller data comprises means for transmitting tail data.
Claim 51
Dependent Claim 19 words
The file server of claim 44 wherein the means for transmitting caller data comprises means for transmitting tail data.
Claim 52
Dependent Claim 17 words
The file server of claim 37 wherein the kernel-mode data transmission controller incorporates a transport layer protocol.
Claim 53
Dependent Claim 17 words
The file server of claim 48 wherein the kernel-mode data transmission controller incorporates a TCP/IP transport protocol.
Claim 54
Dependent Claim 17 words
The file server of claim 48 wherein the kernel-mode data transmission controller incorporates an IPX/SPX transport protocol.
Claim 55
Dependent Claim 20 words
The file server of claim 37 wherein the kernel-mode accessed memory comprises cache memory administered by a file system cache.
Claim 56
Dependent Claim 16 words
The file server of claim 37 wherein the secondary data storage device is a hard disk.
Claim 57
Dependent Claim 16 words
The file server of claim 37 wherein the secondary data storage device is a CD ROM.
Claim 58
Dependent Claim 154 words
A file server for transmitting, by means of a series of send operations performed by a kernel-mode transmission procedure, data from a file stored on a secondary data storage device on the file server to a second networked machine, said file server comprising: a kernel-mode accessed memory; a user-mode process for issuing a transmit request using a single call to a kernel-mode process, the transmit request including an identifier of a segment of data; a kernel-mode file system data controller for copying, in response to the transmit request, the segment of data comprising a plurality of data blocks, from the secondary data storage device to the kernel-mode accessed memory; and means for repeating a plurality of times, by kernel-mode processes, in response to the transmit request: identifying a designated data block of the plurality of data blocks; and transmitting, by the kernel-mode data transmission procedure, the designated data block to the second networked machine.
Claim 59
Dependent Claim 154 words
A file server for transmitting, by means of a series of send operations performed by a kernel-mode transmission procedure, data from a file stored on a secondary data storage device on the file server to a second networked machine, said file server comprising: a kernel-mode accessed memory; a user-mode process for issuing a transmit request using a single call to a kernel-mode process, the transmit request including an identifier of a segment of data; a kernel-mode file system data controller for copying, in response to the transmit request, the segment of data comprising a plurality of data blocks, from the secondary data storage device to the kernel-mode accessed memory; and means for repeating a plurality of times, by kernel-mode processes, in response to the transmit request: identifying a designated data block of the plurality of data blocks; and transmitting, by the kernel-mode data transmission procedure, the designated data block to the second networked machine.
Claim 60
Dependent Claim 55 words
The file server of claim 54 further comprising: kernel-mode processing means for determining that a remaining portion of the plurality of data blocks has not been transmitted, and in response thereto updating a pointer identifying a next data block of the segment of data to be transmitted in accordance with said identifying and transmitting steps.
Claim 61
Dependent Claim 70 words
The file server of claim 54 wherein the data block is transmitted from the file server to the second networked machine via an established connection between the file server and the second networked machine, and wherein the file server further comprises: means for providing, by the user-mode process to a kernel-mode process, a network connection identifier corresponding to the established connection between the file server and the second networked machine.
Claim 62
Dependent Claim 15 words
The file server of claim 56 wherein the network connection identifier is a socket handle.
Claim 63
Dependent Claim 46 words
The file server of claim 54 wherein the data block is stored in a buffer within the kernel-mode accessed memory, and the file server further comprises: means for providing to the kernel-mode data transmission controller an identifier corresponding to the buffer within the kernel-mode accessed memory.
Claim 64
Dependent Claim 20 words
The file server of claim 58 wherein the identifier comprises a pointer to the buffer within the kernel-mode accessed memory.
Claim 65
Dependent Claim 25 words
The file server of claim 54 further comprising: means for transmitting caller data, in response to the transmit request, via the kernel-mode data transmission controller.
Claim 66
Dependent Claim 19 words
The file server of claim 60 wherein the means for transmitting caller data comprises means for transmitting head data.
Claim 67
Dependent Claim 19 words
The file server of claim 61 wherein the means for transmitting caller data comprises means for transmitting tail data.
Claim 68
Dependent Claim 19 words
The file server of claim 60 wherein the means for transmitting caller data comprises means for transmitting tail data.
Claim 69
Dependent Claim 17 words
The file server of claim 54 wherein the kernel-mode data transmission procedure incorporates a transport layer protocol.
Claim 70
Dependent Claim 17 words
The file server of claim 64 wherein the kernel-mode data transmission procedure incorporates a TCP/IP transport protocol.
Claim 71
Dependent Claim 17 words
The file server of claim 64 wherein the kernel-mode data transmission procedure incorporates an IPX/SPX transport protocol.
Claim 72
Dependent Claim 20 words
The file server of claim 54 wherein the kernel-mode accessed memory comprises cache memory administered by a file system cache.
Claim 73
Dependent Claim 16 words
The file server of claim 54 wherein the secondary data storage device is a hard disk.
Claim 74
Dependent Claim 16 words
The file server of claim 54 wherein the secondary data storage device is a CD ROM.
Claim 75
Dependent Claim 167 words
A file server for transmitting, by means of a series of send operations performed by a kernel-mode transmission procedure, data from a file stored on a secondary data storage device on the file server to a second networked machine, the file server comprising: a kernel-mode accessed memory; a user-mode process for issuing a transmit request using a single call to a kernel-mode process, the transmit request including an identifier of a segment of data; and means for performing, by kernel-mode processes, in response to the transmit request, a transmission of the segment of data comprising a plurality of data blocks to the second networked machine, said means for performing step comprising means for repeating a plurality of times: identifying a designated data block of the plurality of data blocks; copying the designated data block from the secondary data storage device to the kernel-mode accessed memory; and transmitting, by the kernel-mode data transmission procedure, the designated data block from the kernel-mode accessed memory to the second networked machine.
Claim 76
Dependent Claim 167 words
A file server for transmitting, by means of a series of send operations performed by a kernel-mode transmission procedure, data from a file stored on a secondary data storage device on the file server to a second networked machine, the file server comprising: a kernel-mode accessed memory; a user-mode process for issuing a transmit request using a single call to a kernel-mode process, the transmit request including an identifier of a segment of data; and means for performing, by kernel-mode processes, in response to the transmit request, a transmission of the segment of data comprising a plurality of data blocks to the second networked machine, said means for performing step comprising means for repeating a plurality of times: identifying a designated data block of the plurality of data blocks; copying the designated data block from the secondary data storage device to the kernel-mode accessed memory; and transmitting, by the kernel-mode data transmission procedure, the designated data block from the kernel-mode accessed memory to the second networked machine.
Claim 77
Dependent Claim 56 words
The file server of claim 70 further comprising: kernel-mode processing means for determining that a remaining portion of the plurality of data blocks has not been transmitted, and in response thereto updating a pointer identifying a next data block of the segment of data to be transmitted in accordance with said identifying, copying and transmitting steps.
Claim 78
Dependent Claim 179 words
A network for facilitating the transmission of a file stored on a secondary data storage device to other networked machines, the network comprising: a second networked machine comprising means for requesting the file stored on the secondary data storage device; a first networked machine including the secondary data storage device and further comprising: a kernel-mode accessed memory; a user-mode process for issuing a transmit request using a single call to a kernel-mode process, the transmit request including an identifier of a segment of data; a kernel-mode file system data controller for copying, in response to the transmit request, the segment of data comprising a plurality of data blocks, from the secondary data storage device to the kernel-mode accessed memory; and means for repeating a plurality of times, by kernel-mode processes, in response to the transmit request: identifying a designated data block of the plurality of data blocks; and transmitting, by a kernel-mode data transmission procedure, the designated data block to the second networked machine; and a network link communicatively coupling the second networked machine and the first networked machine.
Claim 79
Dependent Claim 179 words
A network for facilitating the transmission of a file stored on a secondary data storage device to other networked machines, the network comprising: a second networked machine comprising means for requesting the file stored on the secondary data storage device; a first networked machine including the secondary data storage device and further comprising: a kernel-mode accessed memory; a user-mode process for issuing a transmit request using a single call to a kernel-mode process, the transmit request including an identifier of a segment of data; a kernel-mode file system data controller for copying, in response to the transmit request, the segment of data comprising a plurality of data blocks, from the secondary data storage device to the kernel-mode accessed memory; and means for repeating a plurality of times, by kernel-mode processes, in response to the transmit request: identifying a designated data block of the plurality of data blocks; and transmitting, by a kernel-mode data transmission procedure, the designated data block to the second networked machine; and a network link communicatively coupling the second networked machine and the first networked machine.
Claim 80
Dependent Claim 13 words
The network of claim 72 wherein the network link is a LAN link.
Claim 81
Dependent Claim 13 words
The network of claim 72 wherein the network link is a WAN link.
Claim 82
Dependent Claim 29 words
The network of claim 72 wherein the first networked machine further comprises: means for transmitting caller data, in response to the transmit request, via the kernel-mode data transmission controller.
Claim 83
Dependent Claim 18 words
The network of claim 75 wherein the means for transmitting caller data comprises means for transmitting head data.
Claim 84
Dependent Claim 19 words
The file server of claim 76 wherein the means for transmitting caller data comprises means for transmitting tail data.
Claim 85
Dependent Claim 19 words
The file server of claim 75 wherein the means for transmitting caller data comprises means for transmitting tail data.

References Cited (Backward Citations)

US5109515A Cited
US5408617A Cited
US5537417A Cited
US5394526A Cited
US5515508A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-11-30 2002-06-01 2002-12-01 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-11-30 2006-06-01 2006-12-01 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-11-30 2010-06-01 2010-12-01 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag